for(i = 1; i < len; i++){
for(j = i - 1; j >= 0; --j){
if(data[j] > data[1 + j]){
swap(j, j + 1);
} else {
break;
}
}
}
swap 方法交换元素。为什么它应该是 --j 而不是 j-- ?有什么不同 ?放 j-- 有什么好处?
最佳答案
在这种情况下,两者都有效。
在 C++ 中有充分的理由使用++i。 由于您使用 C 编写代码,因此请选择一个并坚持使用。
关于c - 插入排序有问题的区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51059478/