说明:只能输入 N-1 个数据,因为下标 0 处 将作为交换数据的临时存储空间
#include
#define N 10
int main(int argc, char *argv[])
{
int i;
int data[N];
printf("\n一共可以输入%d个数据\n",N-1);
for (i = 1; i < N; i++) {
printf("\n请输入第 %d 个数据:",i);
scanf("%d",&data[i]);
}
insertSort(data);
return 0;
}
//2 5 6 2 7 9 8 1 3
//9 8 7 6 5 4 3 2 1
//1 2 3 4 5 6 7 8 9
int insertSort(int data[]);
int insertSort(int data[]) {
int i;
int j;
for (i = 2;i < N; i++) {
data[0] = data[i];
for (j = i-1;j > 0;j--) {
//当前面的数比 data[0] 的数大时,后移一位 而且 把移出来的空位赋值为 data[0]
//如果前面还会有后移的数,会自动覆盖那个空位,如果没有,则表明那个数就是最小的了。
if (data[0] < data[j]) {
data[j+1] = data[j];
data[j] = data[0];
}
}
}
printf("\n");
for (i = 1;i < N; i++) {
printf("%d\t",data[i]);
}
}
//-------------------------源码格式图片-------------------------------------
转载请注明原文地址: https://ju.6miu.com/read-675304.html