java排序算法之堆排序

       在博客http://blog.csdn.net/haizi8888/article/details/21414635中,已經分析了二叉堆進行了比較全面的分析;

       所謂的堆排序,就是對N個數存儲爲最大(小)堆的形式,每次deleteMin取出一項,運行N次,就可以獲得有序的序列;

步驟如下:

1,         將每一項存入數組中;(花費O(N)時間)

2,         調用buildHeap;(花費O(NlogN)時間)

3,         調用N次deleteMin;(花費O(NlogN)時間)

所以堆排序需要的時間爲O(NlogN)時間,當然需要額外的O(N)的空間。

代碼比較簡單,對比下另一篇博客即可;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章