- 博客(2)
- 收藏
- 关注
原创 对于头插法的理解(希望可以被批评指正)
希尔排序是插入排序的一种更高效的改进版本,它通过引入增量序列来减少比较和移动操作的次数。然而,希尔排序的增量序列选择对算法性能有很大影响,不同的增量序列可能会导致不同的性能表现。1. 选择增量:首先选择一个增量序列,这个序列可以是固定的,也可以是动态生成的。增量序列的目的是将数组分成多个子序列,每个子序列中的元素数量逐渐减少。5. 完成排序:当增量减小到1时,整个数组将被分成单个元素的子序列,此时数组已经是有序的。- 与子序列中已排序的部分的元素进行比较,找到合适的位置插入待插入元素。
2024-06-28 12:07:13
390
原创 数据结构中直接插入与折半插入(从头开始学数据结构,希望可以被批评指正)
2. 如果当前元素(称为"key")小于前面的元素,则将前面的元素向后移动,为当前元素腾出空间。- 折半插入排序在最好情况下的时间复杂度理论上可以达到O(n log n),但这种情况非常罕见。- 平均情况下仍然是O(n^2),但由于减少了比较次数,实际性能可能比直接插入排序好。- 最好情况下是O(n log n),但这很少发生,因为它依赖于输入数据的分布。2. 将找到位置之后的所有元素向后移动一个位置,为当前元素腾出空间。- 平均情况下是O(n^2),其中n是元素的数量。- 最坏情况下也是O(n^2)。
2024-06-22 19:21:29
514
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人