1实现直接插入排序算法
时间: 2023-11-10 15:15:35 浏览: 92
好的,直接插入排序是一种简单直观的排序算法,其基本思想是将待排序的元素分为已排序和未排序两部分,每次将未排序部分的第一个元素插入到已排序部分的合适位置,直到所有元素都被插入到已排序部分为止。
以下是直接插入排序的 C++ 代码实现:
```cpp
void insertionSort(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 表示数组的长度。算法首先从第二个元素开始,将其作为 key,插入到已排序部分的合适位置。具体实现是通过从已排序部分的末尾开始向前遍历,找到第一个比 key 小的元素,在其后面插入 key。
时间复杂度为 O(n^2),空间复杂度为 O(1)。
阅读全文