FunctionGHW

立志成为真正程序员的码农,伪全栈,目前主要写C#

希尔排序(Shell Sort)算法学习

希尔排序是对插入排序的改进。 如果把排序的过程看作消除序列中 逆序对 的过程,那么排序的最终结果就是序列中没有逆序对。 普通的插入排序每次交换相邻元素,一次交换只能消除一个逆序对; 希尔排序允许交换相距一定间隔的元素,一次交换可以消除多个逆序对,因此速度更快。

继续阅读

堆排序(Heap Sort)算法学习

堆排序可以看作选择排序的进化版。选择排序通过遍历来选出最大(最小)元素, 堆排序利用数据结构二叉堆更快的选出最大(最小)元素。堆排序有两个优势: 1.)最好、最坏和平均时间复杂度均为\(O(nlogn)\); 2.)可以原地进行,空间复杂度\(O(1)\)。

继续阅读