c++版直接插入排序源码加注释
时间: 2023-08-16 10:05:05 浏览: 82
以下是C++版的直接插入排序源码,已加上注释:
```cpp
#include <iostream>
using namespace std;
void insertionSort(int arr[], int n) { // 定义插入排序函数
int i, key, j;
for (i = 1; i < n; i++) {
key = arr[i]; // 取出当前需要排序的元素
j = i - 1;
// 将 arr[0]~arr[i-1] 中大于 key 的元素后移一位
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key; // 将 key 插入到正确位置
}
}
int main() {
int arr[] = { 12, 11, 13, 5, 6 };
int n = sizeof(arr) / sizeof(arr[0]);
insertionSort(arr, n);
cout << "Sorted array: \n";
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
cout << endl;
return 0;
}
```
注释如下:
- `void insertionSort(int arr[], int n)`: 插入排序函数,传入参数为数组和数组长度。
- `key = arr[i];`: 取出当前需要排序的元素。
- `j = i - 1;`: 设定初始位置为已排序好的最后一位。
- `while (j >= 0 && arr[j] > key)`: 将已排序好的数组中大于当前元素的元素后移一位。
- `arr[j + 1] = key;`: 将当前元素插入到正确的位置。
- `int arr[] = { 12, 11, 13, 5, 6 };`: 定义需要排序的数组。
- `n = sizeof(arr) / sizeof(arr[0]);`: 计算数组长度。
- `insertionSort(arr, n);`: 调用插入排序函数进行排序。
- `cout << arr[i] << " ";`: 输出排序后的数组。
阅读全文