1.并查思想 带压缩路径的带权合并算法(树)
2.栈有两种实现方式:链表和可变化大小的数组
链表优点:每次push和pop得时间是一定的,总的操作时间比数组大;
数组优点:在扩张/压缩数组的插入/删除花费时间大,但均摊下来每次插入和删除都比链表快速,显得总的操作时间小。
Q:何时采用链表方法?
A:飞机场停飞机,网络中源源不断收到数据包。 因为这样情况下不允许突然来个长时间的插入。
3.选择排序与插入排序比较:
选择排序无论初始数组有序状况如何,其所耗费的时间复杂度是固定的,都需要对剩余未排序部分进行扫描;
插入排序很大程度上依赖于初始数组有序程度,若较为有序,则速度很快,比选择排序块,若无序,很有可能接近于冒泡程度。
扫描二维码关注公众号,回复:
2903814 查看本文章
4.为什么希尔排序是基于插入排序实现的?
因为刚开始在gap比较大时,每个待排序的数组规模较小,此时各个排序复杂度差不多;
当gap比较小,如2,1时,则此时经过前面的gap,数组的有序程度已经改善,此时用插入排序会更加快一些。
Ps:当以gap1进行shell排序后,再进行gap2(gap2 < gap1)排序,则排完后的序列仍遵守gap1的排序结果。