- 1.解题思路
- 2.C语言代码
1)对有n个数的序列(存放在数组 a[n]中),从中选出最小的数,与第1个数交换位置;
2)除第1个数外,其余n-1个数中选最小的数,与第2个数交换位置;
3)依次类推,选择了n-1 次后,这个数列已按升序排列。
2.C语言代码
#include "stdio.h"
#include "math.h"
#define N 10
int main(){
// 初始化数组与变量
int i, j, imin, s;
int a[N] = {4,3,2,6,7,1,5,8,1,9};
// 排序过程
for(i=0; i<N-1; i++){
imin = i;
// 找出最小的数
for(j=i+1; j<N; j++){
if (a[imin]>a[j]){
imin = j;
}
}
// 替换位置
if (i != imin){
s = a[i];
a[i] = a[imin];
a[imin] = s;
}
}
// 打印输出
for(i=0; i<N; i++)
printf("%4d", a[i]);
printf("\n");
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)