用C++编写一个程序,实现直接插入排序算法,并输出{9,8,7,6,5,4,3,2,1,0}的排序过程。
时间: 2023-08-19 14:20:26 浏览: 69
好的,以下是程序的实现,注释中有详细说明:
```c++
#include <iostream>
using namespace std;
void insertionSort(int arr[], int n) {
int i, j, tmp;
for (i = 1; i < n; i++) {
tmp = arr[i];
j = i - 1;
// 将比当前元素大的元素向后移动
while (j >= 0 && arr[j] > tmp) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = tmp;
// 输出每轮排序后的结果
for (int k = 0; k < n; k++) {
cout << arr[k] << " ";
}
cout << endl;
}
}
int main() {
int arr[10] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
insertionSort(arr, 10);
return 0;
}
```
输出结果如下:
```
8 9 7 6 5 4 3 2 1 0
7 8 9 6 5 4 3 2 1 0
6 7 8 9 5 4 3 2 1 0
5 6 7 8 9 4 3 2 1 0
4 5 6 7 8 9 3 2 1 0
3 4 5 6 7 8 9 2 1 0
2 3 4 5 6 7 8 9 1 0
1 2 3 4 5 6 7 8 9 0
0 1 2 3 4 5 6 7 8 9
```
阅读全文