📅  最后修改于: 2023-12-03 14:56:20.926000             🧑  作者: Mango
插入排序是一种简单但有效的排序算法,它通常用于较小的数据集或者已经部分排序的数据集。下面是用于插入排序的 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)$。由于它对于小型数据集非常高效,因此在某些情况下,它比快速排序和合并排序更合适。
如果您需要对算法有更深入的了解,建议参考《算法导论》等经典教材。