- 博客(2)
- 收藏
- 关注
原创 shell排序
但是这个增量确实有它的意义,不管数列有多长,刚开始时增量会很大,所以每一组待排序的数列的规模会很小,排序会很快。在希尔排序中会进行分组、排序,所以同样值的元素,其相对位置有可能会发生变化,这是因为同样值的元素若不在一个组中,则有可能后面的元素会被移动到前面。当然,希尔排序的时间复杂度与其增量序列有关,我们知道,一般来说希尔排序会比插入排序快一些,这就足够了。在希尔排序的实现中仍然使用了插入排序,只是进行了分组,并没有使用其他空间,所以希尔排序的空间复杂度同样是 O(1),是常量级的。其他的还有质数法等。
2022-09-01 21:48:26
45
1
原创 堆排序的个人理解
利用的思想是比较节点i和它的孩子节点left(i),right(i),选出三者最大(或者最小)者,如果最大(小)值不是节点i而是它的一个孩子节点,那边交互节点i和该节点,然后再调用调整堆过程,这是一个递归的过程。然后再次将R[1..n-1]中关键字最大的记录R[1]和该区间的最后一个记录R[n-1]交换,由此得到新的无序区R[1..n-2]和有序区R[n-1..n],且仍满足关系R[1..n-2].keys≤R[n-1..n].keys,同样要将R[1..n-2]调整为堆。(1)用大根堆排序的基本思想。
2022-09-01 21:41:06
27
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人