1. 程式人生 > >堆排序和基數排序

堆排序和基數排序

堆排序和基數排序

 

堆排序:是指利用這種資料結構所設計的一種排序演算法。堆是一個近似完全二叉樹的結構,並同時滿足堆積的性質:即子結點的鍵值或索引總是小於(或者大於)它的父節點。

時間複雜度:平均情況O(nlogn) 最好情況O(nlogn) 最壞情況O(nlogn)

空間複雜度:O(1)

不穩定

 

 

 

 

 

程式碼:

 

 

 

基數排序:屬於“分配式排序”,又稱“桶排序”(bucket sort),顧名思義,它是透過鍵值的部份資訊,將要排序的

元素分配至某些“桶”中,藉以達到排序的作用,基數排序法是屬於穩定性的排序,在某些時候,基數排序法的效率高於其它的穩定性排序法。

時間複雜度:平均情況O( d(r+n) ) 最好情況O( d(n+dr) ) 最壞情況O( d(r+n) )

空間複雜度:O( rd+n )

穩定

 

 

 

 

程式碼: