c - 插入排序有问题的区域

标签 c algorithm performance sorting insertion-sort

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/

相关文章:

javascript - 不断增长的数组的内存高效下采样(图表)

javascript - Firefox JavaScript 算法性能异常

android - 从电池性能影响的角度来看,SQLite 数据库与基于文件的数据存储

Android线程完成回调

将 Lua 脚本编译为 unsigned char 缓冲区

c - 尽管设置了 rfcomm 安全性,Bluez hcidump 仍然清晰

计算 n 个整数的最小值

c - 如何正确声明此功能?

javascript - 如何快速缩放javascript中的二维数组?

algorithm - 查找一个数字的所有可能的非连续平方和