对数据集合a=(15,23,10,45,20)使用直接插入排序法进行升序排列排序完毕后需要比较次数?
发布网友
发布时间:2022-04-25 14:57
我来回答
共1个回答
热心网友
时间:2023-10-10 07:45
直接插入排序的思路是将数组元素依次插入到排好序的集合中,最后的集合就是排好序的。
每次插入的时候需要从小到大或者从大小遍历集合,找到位置后插入数据。
代码如下:insert_sort(int a[], int n)
3{
4 int i=0;
5 int j=0;
6 int tmp=0;
7 for (i = 1; i < n; i++)
8 {
9 // 取牌
10 tmp = a[i];
11 // 往前插的起始位置
12 j = i - 1;
13
14 // 大的a[j]都放后面,寻找出j
15 while ((j >= 0) && a[j] > tmp)
16 {
17 // 往后放一个
18 a[j+1] = a[j];
19 j--;
20 }
21
22 // 放到该放的位置
23 a[j+1]=tmp;
24 }
25}