选择排序法是一种排序方法,可以通过两个for循环实现。
其核心思想为(大->小):
一个a[0…n-1]大小的数组,第 i 趟排序是从后面的 n - i + 1(i = 1,2,3,4,…,n - 1)个元素中选择一个值最大的元素与该 n - i + 1 个元素的最前面的那个元素交换位置,即与整个序列的第 i 个元素交换位置。如此下去,直到 i = n - 1,排序结束。
int main()
{
int i,j,k,m,a[10];
int temp; //临时变量
for (k = 0; k < 10;k++) {
scanf("%d",&a[k]); //从键盘获取10个数
}
//选择排序法
for (i = 0; i < 9;i++) {
for (j = i + 1; j <= 9;j++) {
if (a[i]<a[j]) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
for(m = 0; m < 10;m++ ){
printf("%5d",a[m]); //按大到小的顺序打印
}
system("pause");
}
运行结果:
————————————————————————————————
2017.10.20
0:25