void insertionSort(std::vector<int>& arr)
时间: 2024-09-07 17:04:35 浏览: 73
Java数据结构及算法实例:插入排序 Insertion Sort
`void insertionSort(std::vector<int>& arr)` 是一个C++函数声明,它表示该函数用于对整型向量(`std::vector<int>`)进行插入排序算法。`insertionSort` 函数没有返回值,因为它的作用是直接对传入的向量 `arr` 进行排序操作。下面是插入排序算法的简要说明及其在C++中的一个可能实现:
插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。算法不断地将未排序序列的元素插入到已排序序列中的适当位置,直到所有元素都被排序。
以下是 `insertionSort` 函数的一个可能的C++实现示例:
```cpp
#include <vector>
void insertionSort(std::vector<int>& arr) {
int i, j, key;
for (i = 1; i < arr.size(); i++) {
key = arr[i]; // 取出未排序的元素
j = i - 1;
// 将大于key的元素向后移动
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key; // 插入key到正确的位置
}
}
```
在这个函数中,我们使用两个嵌套的循环,外层循环遍历数组中的每个元素,内层循环负责将当前元素插入到已排序的部分的正确位置。这种实现方式的时间复杂度为O(n^2),适合小规模数据的排序。
阅读全文