本篇文章将详细介绍C语言中实现的一种经典排序算法——插入排序。通过代码示例和步骤解析,帮助读者理解并掌握其原理与应用。
算法实现:使用插入排序将下面的数字按照从小到大的顺序排列
步骤1: 数组中已经排好的是{1},将9插入数组中。
步骤2: 数组中已经排好的是{2, 9},将5插入数组中。
步骤3: 数组中已经排好的是{2, 5, 9},将4插入数组中。
步骤4: 数组中已经排好的是{2, 4, 5, 9},将8插入数组中。
步骤5: 数组中已经排好的是{2, 4, 5, 8, 9},将1插入数组中。
步骤6: 数组中已经排好的是{1, 2, 4, 5, 8, 9},将6插入数组中。
步骤7:排序完成
程序代码:
```c
#include
#include
// 插入排序函数定义
void InsertionSort(int arr[], int n) {
for (int i = 1; i < n; ++i) {
int key = arr[i];
int j = i - 1;
// 将数组中已经排好序的部分从后向前比较,找到适当位置插入
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
--j;
}
arr[j + 1] = key;
}
}
int main() {
int array[] = {9,2,5,4,8,1,6};
int n = sizeof(array)/sizeof(array[0]);
InsertionSort(array,n);
printf(排序后的数组: );
for (int i=0; i < n; i++)
printf(%d ,array[i]);
return 0;
}
```