Beyond平君

导航

C语言——几种经典的排序算法

经典排序之冒泡排序

#define SIZE 5
int main()
{
    int a[SIZE] = {0};
    //循环输入
    for(int i=0;i<SIZE;i++)
    {
        scanf("%d",&a[i]);
    }
    
    //冒泡排序核心
    for(int i=0;i<SIZE-1;i++)
    {
        for(int j=0;j<SIZE-1-i;j++)
        {
            if(a[j]>a[j+1])
            {
                int temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
        }
    }
    
    //遍历输出
    for(int i=0;i<SIZE;i++)
    {
        printf("%d ",a[i]);
    }
}

 选择排序:

//经典排序算法 - 选择排序Selection sort

//查找数组中最小的数,和第一个元素进行交换

 1 #define SIZE 5
 2 int main()
 3 {
 4     int a[SIZE] = {0};
 5     //循环输入
 6     for(int i=0;i<SIZE;i++)
 7     {
 8         scanf("%d",&a[i]);
 9     }
10     
11     for(int i=0;i<SIZE-1;i++)
12     {
13         int k = i;
14         for(int j=i+1;j<SIZE;j++)
15         {
16             if(a[k]>a[j])
17             {
18                 k = j;
19             }
20         }
21         if(k != i)
22         {
23             int temp = a[k];
24             a[k] = a[i];
25             a[i] = temp;
26         }
27     }
28     
29     //遍历输出
30     for(int i=0;i<SIZE;i++)
31     {
32         printf("%d ",a[i]);
33     }
34 }

 

posted on 2015-06-02 20:06  Beyond平君  阅读(287)  评论(0编辑  收藏  举报