如何用c++实现插入排序,请详解代码
时间: 2023-11-22 13:56:01 浏览: 214
插入排序(Insertion Sort)的基本思想是将一个记录插入到已排好序的有序表中,从而得到一个新的、数量加1的有序表。具体实现过程如下:
1. 将序列的第一个元素看作是一个有序序列,将后面的元素依次插入到这个有序序列中。
2. 对于未排序部分的每个元素,从后往前扫描已排序部分,找到相应位置并插入。
下面是用 C++ 实现插入排序的代码:
```c++
void insertionSort(int arr[], int n) {
int i, j, key;
for (i = 1; i < n; i++) {
key = arr[i];
j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}
```
其中,参数 `arr` 表示待排序数组,`n` 表示数组的长度。算法的时间复杂度为 $O(n^2)$,空间复杂度为 $O(1)$。
阅读全文