用c语言实现直接插入排序算法void DirectInsertSort(int Data[], int DataCount) { //TODO*****
时间: 2024-12-16 07:13:06 浏览: 35
直接插入排序是一种简单直观的排序算法,它的基本思想是将待排序的数据分为已排序区间和未排序区间,每次从未排序区间取出第一个元素,在已排序区间中从后向前比较,找到合适的位置插入。以下是使用 C 语言实现直接插入排序的函数:
```c
#include <stdio.h>
void DirectInsertSort(int Data[], int DataCount) {
int i, j;
for (i = 1; i < DataCount; i++) { // 从第二个元素开始遍历
int key = Data[i]; // 当前元素作为key
j = i - 1;
// 将大于key的元素向右移动一位
while (j >= 0 && Data[j] > key) {
Data[j + 1] = Data[j];
j--;
}
// 插入key到正确位置
Data[j + 1] = key;
}
}
// 示例:
void printArray(int Data[], int Count) {
int i;
for (i = 0; i < Count; i++)
printf("%d ", Data[i]);
printf("\n");
}
int main() {
int Data[] = {9, 5, 7, 2, 4, 8, 1, 6};
int DataCount = sizeof(Data) / sizeof(Data[0]);
printf("Before sorting:\n");
printArray(Data, DataCount);
DirectInsertSort(Data, DataCount);
printf("After sorting with Direct Insertion Sort:\n");
printArray(Data, DataCount);
return 0;
}
```
当你运行这个程序,它会显示排序前后的数组。
阅读全文