选择排序

选择排序:

也是一种基本的排序方法,

基本思想:

用一个for循环控制外层,再用一个for循环控制内层

内层循环让 除了已经排好以外的数 选出一个最小的与最前面的数交换,每次排一个数

 

时间复杂度:O(n^2)

 

代码:(升序排列)

 

#include<stdio.h>
#define N 7

int main()
{   int a[N]={21,54,7,11,98,43,0};
    int i,j,min,p;

    for(i=0;i<N-1;i++)//外循环
        {min=i;   //默认当前元素是最小值
         for(j=i+1;j<N;j++)//每排好一个数,内层循环就从下一个元素开始
             if(a[j]<a[min])
               min=j;   //记录最小值的坐标
             if(min!=i)
               { p=a[min];
                 a[min]=a[i];
                 a[i]=p;
               }   //交换最小值与最前面的元素

        }


    for(i=0;i<N;i++)
        printf("%d ",a[i]);


return 0;
}

 

posted @ 2017-03-20 20:49  __Aiden  阅读(193)  评论(0编辑  收藏  举报