C 语言-直接插入排序

    xiaoxiao2021-04-18  62

    说明:只能输入 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

    最新回复(0)