选择排序法

来源:互联网 发布:java ant 编译命令 编辑:程序博客网 时间:2024/04/29 12:01

思路:

       选择排序法的思路是:每一趟在n-i个数字里选取最小的值赋给a[i],然后,下一趟把剩下的再继续比较,赋值,以此类推,不断交换赋值。

      

      初始序列:{ 49 27 65 97 76 12 38 }
      第1趟:12与49交换:12 { 27 65 97 76 49 38 }
      第2趟:27不动 :12 27 { 65 97 76 49 38 }
      第3趟:65与38交换:12 27 38 { 97 76 65 49}
      第4趟:97与49交换:12 27 38 49 { 97 76 65 }
      第5趟:76与65交换:12 27 38 49 65 { 97 76 }
      第6趟:97与76交换:12 27 38 49 65 76 97 完成
 


例题:用选择法进行排序
#include<stdio.h>int main(){    int a[5],i,j,k,l;    int t;    for(i=0;i<5;i++)        scanf("%d",&a[i]);    for(j=0;j<5;j++)    {        for(k=j;k<5;k++)        {            if(a[j]>a[k])            {                t=a[j];                a[j]=a[k];                a[k]=t;            }        }    }    for(l=0;l<5;l++)        printf("%d\n",a[l]);    return 0;}


运行结果:


0 0