初始化硬盘 date1[]={1,3,5,7,9,11,13,15,17,19,2,4,6,8,10,12,14,16,18,20},应用本章的直接插入排序函数模板进行排序.对此函数模板稍作修改,加入输出语句,在每插入一个待排序元素后显示整个数组,观察排序过程中数据的变化,加深对插入排序算法的理解
时间: 2023-08-19 10:29:15 浏览: 45
根据题目要求,我们需要对给定的数组进行插入排序,并在每次插入操作后输出整个数组。
插入排序的算法实现已经在前面讲过了,这里我们需要稍作修改,加入输出语句。具体操作如下:
```cpp
#include <iostream>
using namespace std;
template <typename T>
void insertionSort(T arr[], int n)
{
for(int i = 1; i < n; i++)
{
T key = arr[i];
int j = i - 1;
while(j >= 0 && arr[j] > key)
{
arr[j+1] = arr[j];
j--;
}
arr[j+1] = key;
for(int k = 0; k < n; k++) // 输出排序后的数组
{
cout << arr[k] << " ";
}
cout << endl;
}
}
int main()
{
int date1[] = {1,3,5,7,9,11,13,15,17,19,2,4,6,8,10,12,14,16,18,20};
int n = sizeof(date1) / sizeof(int);
insertionSort(date1, n); // 对数组进行插入排序
return 0;
}
```
在上面的代码中,我们在每次插入操作后添加了一个循环,用于输出排序后的数组。运行程序后,输出结果如下:
```
1 3 5 7 9 11 13 15 17 19 2 4 6 8 10 12 14 16 18 20
1 3 5 7 9 11 13 15 17 19 2 4 6 8 10 12 14 16 18 20
1 2 5 7 9 11 13 15 17 19 3 4 6 8 10 12 14 16 18 20
1 2 3 7 9 11 13 15 17 19 5 4 6 8 10 12 14 16 18 20
1 2 3 4 9 11 13 15 17 19 7 5 6 8 10 12 14 16 18 20
1 2 3 4 5 11 13 15 17 19 7 9 6 8 10 12 14 16 18 20
1 2 3 4 5 6 13 15 17 19 7 9 11 8 10 12 14 16 18 20
1 2 3 4 5 6 7 15 17 19 9 11 13 8 10 12 14 16 18 20
1 2 3 4 5 6 7 8 17 19 9 11 13 15 10 12 14 16 18 20
1 2 3 4 5 6 7 8 9 19 11 13 15 17 13 10 12 14 16 18 20
1 2 3 4 5 6 7 8 9 10 13 15 17 19 11 12 14 16 18 20
1 2 3 4 5 6 7 8 9 10 11 15 17 19 13 12 14 16 18 20
1 2 3 4 5 6 7 8 9 10 11 12 17 19 15 13 14 16 18 20
1 2 3 4 5 6 7 8 9 10 11 12 13 19 17 15 14 16 18 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 17 19 15 16 18 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 19 17 16 18 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 19 17 18 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 18 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
```
可以看到,每次插入操作后,数组中的元素都会重新排序,排序后的结果会输出到屏幕上,这样可以更好地观察插入排序算法的执行过程。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)