📜  用于插入排序的 c++ 代码 - C++ (1)

📅  最后修改于: 2023-12-03 14:56:20.926000             🧑  作者: Mango

用于插入排序的 C++ 代码

插入排序是一种简单但有效的排序算法,它通常用于较小的数据集或者已经部分排序的数据集。下面是用于插入排序的 C++ 代码:

void insertion_sort(int arr[], int n) {
    for(int i = 1; i < n; i++) {
        int key = arr[i];
        int j = i - 1;
        while(j >= 0 && arr[j] > key) {
            arr[j + 1] = arr[j];
            j--;
        }
        arr[j + 1] = key;
    }
}

这里的 arr 是需要排序的数组,n 是数组的长度。在循环内部,我们将 arr[i] 储存在 key 中,并将索引 j 初始化为 i - 1

while 循环中,我们将 arr[j]key 进行比较,如果 arr[j] 大于 key,则将 arr[j] 向右移动一位,直到 key 找到其正确的位置。最后将 key 插入到正确的位置上。

该算法的时间复杂度为 $O(n^2)$。由于它对于小型数据集非常高效,因此在某些情况下,它比快速排序和合并排序更合适。

如果您需要对算法有更深入的了解,建议参考《算法导论》等经典教材。