🌟 简介 🌟
直接插入排序是一种简单的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。接下来让我们一起看看如何用C语言实现这个算法吧!💻🔧
👩💻 代码详解 👩💻
```c
include
void insertSort(int arr[], int n) {
int i, j, key;
for (i = 1; i < n; i++) {
key = arr[i];
j = i - 1;
// 将arr[i]插入到已排序的序列中
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}
int main() {
int arr[] = {5, 2, 4, 6, 1, 3};
int n = sizeof(arr)/sizeof(arr[0]);
insertSort(arr, n);
printf("Sorted array: \n");
for (int i = 0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
```
🔍 步骤说明 🔍
1. 遍历数组中的每个元素。
2. 对于当前元素,将其与已排序部分的元素逐个比较。
3. 如果当前元素小于已排序部分的某个元素,则将该元素向右移动一位。
4. 最后将当前元素插入到正确的位置。
🖼️ 示例图解 🖼️
想象一下,我们有一个有序区和一个无序区。每次我们从无序区取出一个元素,并将其插入到有序区的正确位置。这就像把书按字母顺序排列一样简单!📚📖
希望这篇教程能帮助你更好地理解直接插入排序算法及其C语言实现!如果你有任何疑问,欢迎随时提问!💬🔍