Bootstrap

c-将一组数排序

方法一:简单,大家就用这个吧!

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
    int main()
    {
    int a[6]={6,5,4,3,2,1};
    int n=6;
    int i,j;
    for(i=0;i<n-1;i++)//从第一个数到倒数第二个数 
    {
        for(j=i+1;j<n;j++)//从i+1个数到最后一个数 
        {
            if(a[i]>a[j])
            {
                int t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
        }
    }
    for(i=0;i<n;i++)
    {
        printf("%d ",a[i]);
    }
        return 0; 
    }

方法二:较难理解

下面为我写的一点思路

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
    int main()
    {
    int a[6]={6,1,2,4,3,5};
    int n=6,minindex,i,j;
    
    for(i=0;i<n-1;i++)//只用排n-1个数 
    {
        //在n的数里面找最小下标minindex,然后将i位置和minindex 位置的数交换 
        //在n-1个数里面找最小下标minindex…… 
        minindex=i;
        for(j=i+1;j<n;j++)
            if(a[minindex]>a[j])
                minindex=j;
        if(minindex!=i)
        {
            int t=a[i];
            a[i]=a[minindex];
            a[minindex]=t;
            
        }
    }
    for(i=0;i<n;i++)
        printf("%d ",a[i]);
    
        return 0; 
    }
     

     

;