27.用选择排序法对10个整数排序

简单选择排序的算法思想:假设排序表为L[1...n],第i趟排序即从L[i...n]中选择关键字最小的元素与L(i)交换,每一趟排序可以确定一个元素的最终位置,这样经过n-1趟排序就可以使得整个排序表有序。

 1  #include <stdio.h>
 2  #include <stdlib.h>
 3  int main()
 4   {
 5     int i,j,A[11],n=10,min,t;
 6     for(i=0;i<n;i++)   //依次输入10个数
 7     {
 8         scanf("%d",&A[i]);
 9     }
10     for(i=0;i<n-1;i++)  //一共进行n-1趟排序
11     {
12       min = i;        //记录最小元素的位置
13       for(j=i+1;j<n;j++) //在A[i..n-1]选择最小元素,从第i+1开始
14             if(A[j]<A[min])  min = j;  //更新最小元素的位置
15       if(min!=i)    //与第i个位置进行交换
16       {
17           t=A[min];  //交换的是A[]中的元素,t只是一个临时变量(A[t]是错误的)
18           A[min]=A[i];
19           A[i]=t;
20       }
21     }
22     for(i=0;i<n;i++)  //输出已排好序的10个数
23     {
24         printf("%d ",A[i]);
25     }
26      return 0;
27   }
原文地址:https://www.cnblogs.com/spore/p/10382139.html