c++实现插入排序的代码及其注释
时间: 2023-08-05 17:11:23 浏览: 75
以下是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;
// 将比 key 大的元素往后移
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key; // 在 j+1 处插入 key
}
}
int main() {
int arr[] = { 12, 11, 13, 5, 6 };
int n = sizeof(arr) / sizeof(arr[0]);
insertionSort(arr, n);
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
注释说明:
1. `void insertionSort(int arr[], int n)`:插入排序函数,接收一个整型数组和数组长度作为参数,不返回任何值。
2. `int i, key, j;`:定义循环计数器 i、当前要插入的元素 key 和循环计数器 j。
3. `for (i = 1; i < n; i++)`:循环从第二个元素开始遍历,因为第一个元素已经是有序的了。
4. `key = arr[i];`:选出当前要插入的元素。
5. `j = i - 1;`:将 j 设为 i 的前一个元素。
6. `while (j >= 0 && arr[j] > key)`:如果 j 大于等于 0 且 arr[j] 大于 key,则将 arr[j] 往后移。
7. `arr[j + 1] = key;`:在 j+1 处插入 key。
8. `int main()`:主函数。
9. `int arr[] = { 12, 11, 13, 5, 6 };`:定义一个整型数组。
10. `int n = sizeof(arr) / sizeof(arr[0]);`:计算出数组的长度。
11. `insertionSort(arr, n);`:调用插入排序函数。
12. `for (int i = 0; i < n; i++)`:遍历数组并输出排序后的结果。