插入排序算法C语言实现
我写出来的排序算法用printf一步步解读,与google algorithm APP上模拟的单步执行不一致。
于是参考了https://www.cnblogs.com/coding-996/p/12275710.html,写出如下代码,经测试,与google algorithm APP上模拟的单步执行一致。
int insert_sort(int *list, int len) { int i = 0; int j = 0; int tmp = 0; if((NULL == list) || (0 == len)) { return 1; } for (i = 1; i < len; i++) { j = i; while (j > 0){ if (list[j] < list[j-1]){ printf("swap %d, %d --> list[%d], list[%d]", list[j-1], list[j], j-1, j); tmp = list[j]; list[j] = list[j-1]; list[j-1] = tmp; j--; getchar(); }else { break; } } } }