[Alg] 十大經典排序算法總結

做業部落:https://www.zybuluo.com/listenviolet/note/1399285git

以上連接是本身在做業部落編輯的排序算法總結~github

Github: https://github.com/listenviolet/py_code/tree/master/sort算法

Github中有對這10種排序算法的Python代碼總結~函數

 

IntorSort

在C++中的sort()函數中使用的是IntroSort算法。IntroSort是QuickSort, HeapSort, Insertion Sort的混合版本,經過三者的組合來達到最小化運算時間的效果。ui

那麼這三個算法是如何協調工做的呢?

https://www.geeksforgeeks.org/know-your-sorting-algorithm-set-2-introsort-cs-sorting-weapon/spa

1. IntorSort首先採用QuickSort, 若是QuickSort的遞歸深度超過規定的限制$2log(N)$,就會轉用HeapSort,以免出現$O(N^2)$的QuickSort的最差時間複雜度。code

2. 若是QuickSortpartition size中的排序元素的個數很是少時(設置爲小於16時),會採用InsertSort.blog

3. 若是partition size 在 [16, 2*log(N)] 之間時,使用QuickSort.排序

相關文章
相關標籤/搜索