选择排序

来源:互联网 发布:足球怎么过人知乎 编辑:程序博客网 时间:2024/06/06 01:07

惯例,给大家介绍选择排序(以从小到大的位置为例说明)。

基本思想是,首先选出最小的数,放在第一个位置;然后选出第二小的数,放在第二个位置,......以此类推,进行排序。

还是以图来说明,更为专业的描述请大家自行搜索。


话不多说,奉上代码,如有错误请多指教大笑

#include<stdio.h>  #define P 10    void selectsort(int p[],int length);    int main()  {         int a[P] = {1,23,2,5,67,3,50,17,48,19};      int i,length;         length = sizeof(a)/sizeof(a[0]);            for(i=0;i<length;i++)      {          printf("%d ",a[i]);      }      printf("\n");        selectsort(a,length);      printf("*******select sort*******\n");      for(i=0;i<length;i++)      {          printf("%d ",a[i]);      }      printf("\n");      return 0;  }  //选择排序  void selectsort(int p[],int length){      int i,j,k;      int temp;// 要注意一点,当要排序 N 个数,已经经过 N-1 次遍历后,已经是有序数列    for(i=0;i<length-1;i++)      {  k = i;// 用来保存最小值得索引         for(j=i+1;j<length;j++)          {              if(p[k]>p[j]) k = j;        }//与初始的i下标交换大小temp = p[i];p[i] = p[k];p[k] = temp;    }  }  



原创粉丝点击