解释插入排序法
时间: 2023-07-02 12:11:42 浏览: 88
插入排序法是一种基础的排序算法,其基本思想是将待排序的序列分为已排序和未排序两部分,初始时已排序序列只有一个元素,然后逐步将未排序序列中的元素插入到已排序序列中的合适位置,直到整个序列排好序为止。
下面是用C语言实现插入排序的示例代码:
```c
void insertion_sort(int arr[], int len)
{
int i, j, temp;
for (i = 1; i < len; i++) {
temp = arr[i];
for (j = i - 1; j >= 0 && arr[j] > temp; j--) {
arr[j + 1] = arr[j];
}
arr[j + 1] = temp;
}
}
```
在这段代码中,我们使用了一个外层循环和一个内层循环来实现插入排序。外层循环从第二个元素开始遍历整个序列,内层循环用于将当前元素插入到已排序序列中的合适位置。在内层循环中,我们将当前元素 `temp` 依次与已排序序列中的元素进行比较,如果发现已排序序列中的元素比 `temp` 大,就将这些元素依次向后移动一个位置,直到找到一个元素比 `temp` 小或者已经到达序列的起始位置。然后将 `temp` 插入到该位置,这样一轮遍历下来,就将一个新的元素插入到了已排序序列中的合适位置,然后再进行下一轮循环,直到整个序列排好序为止。
阅读全文