插入排序

2020-11-20  本文已影响0人  DFlatMajor

总结:在往后挪动时,数据被覆盖了,所以往后比较没有意义。用了断点调试,看数组中的值的变化,发现值的丢失。

#include<stdio.h>

int main() {

int a[10] = {5,3,2,6,8,2,11,0,7,44};

//0 ~ i位置有序 ,将 i + 1往里面插

int j = 0;

int tmp;

for (int i = 1; i < 10; i++) {

j = i;

tmp = a[j];

while (j - 1>= 0 && a[j - 1] <tmp) {  //原来这里是 a[j-1] < a[j] 后来用断点调试查看数组里面的变化

//在用临时变量的时候,往后比较时,用来比较的数据被覆盖了,所以失准

a[j] = a[j - 1];

j--;

}//j为等待插入的位置

a[j] = tmp;

}

for (int i = 0; i < 10; i++) {

printf("%d\n", a[i]);

}

}

上一篇 下一篇

猜你喜欢

热点阅读