C语言中插入排序
在C语言中,插入排序是一种简单的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。以下是插入排序的C语言实现,以及每个步骤的文字讲解:
#include <stdio.h>
void insertionSort(int arr[], int n) {
int i, key, j;
for (i = 1; i < n; i++) {
key = arr[i]; // 当前要排序的元素
j = i - 1;
// 将arr[i]与已排序好的序列arr[0...i-1]中的元素进行比较,找到合适的位置插入
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j]; // 将大于key的元素向后移动
j = j - 1;
}
arr[j + 1] = key; // 将key插入到合适的位置
}
}
int main() {
int n, i;
printf("请输入数组的长度: ");
scanf("%d", &n);
int arr[n];
printf("请输入数组的元素(用空格分隔): ");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 对数组进行插入排序
insertionSort(arr, n);
// 输出排序后的数组
printf("排序后的数组: ");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
文字讲解:
1. 定义一个插入排序函数insertionSort,它接受一个整型数组和数组的长度作为参数。
2. 在main函数中,首先提示用户输入数组的长度,并读取用户输入。
3. 根据用户输入的长度,动态创建一个整型数组。
4. 提示用户输入数组的元素,并通过循环读取每个元素。
5. 调用insertionSort函数对数组进行排序。
6. 在insertionSort函数中,使用一个for循环从数组的第二个元素开始遍历数组。
7. 在每次迭代中,将当前元素(key)与已排序好的部分进行比较,找到合适的位置插入。
8. 使用一个while循环,将大于key的元素向后移动,直到找到合适的位置。
9. 将key插入到合适的位置。
10. 在main函数中,输出排序后的数组。
原文地址:https://blog.csdn.net/lxsxjsj/article/details/143440297
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!