数据结构C语言直接插入排序的感悟
时间: 2024-03-13 16:39:20 浏览: 92
直接插入排序是一种简单且常用的排序算法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增加1的有序表。具体的步骤如下:
1. 遍历待排序的数组,从第二个元素开始,将当前元素插入到已经排好序的子数组中。
2. 将当前元素与已经排好序的子数组中的元素进行比较,找到合适的位置插入。
3. 将当前元素插入到合适的位置后,继续遍历下一个元素,重复上述步骤。
下面是使用C语言实现的直接插入排序的代码示例:
引用:
```c
#include <stdio.h>
#define Keydef int
// 创建一个自定义结构体
typedef struct {
Keydef Key;
} Datatype;
void InsertSort(Datatype a[], int n) {
int i, j;
Datatype temp;
for (i = 1; i < n; i++) {
temp = a[i];
j = i - 1;
// 将当前元素与已经排好序的子数组中的元素进行比较,找到合适的位置插入
while (j >= 0 && a[j].Key < temp.Key) {
a[j + 1] = a[j];
j--;
}
a[j + 1] = temp;
}
}
int main() {
int i;
Datatype a[6] = {3, 1, 5, 2, 4, 6};
InsertSort(a, 6);
for (i = 0; i < 6; i++) {
printf("%d ", a[i].Key);
}
return 0;
}
```
通过以上代码,我们可以看到直接插入排序的实现过程。在每次插入操作中,将当前元素与已经排好序的子数组中的元素进行比较,找到合适的位置插入。最终,数组中的元素按照从大到小的顺序排列。
阅读全文
相关推荐










