排序算法集合(1)-Python實現的堆排序

      最近自己動手實現了各種排序算法,有冒泡、插入、快速排序、二叉樹排序等等,覺得快速排序的效率(對於一般的亂序而言)的確無可匹敵。當然,堆排序也很酷。不過前幾個使用c#實現的,而堆排序是用python實現的,沒辦法做benchmark了。今後幾天陸續貼出來,供大家參看。

      堆排序的算法請參考:http://baike.baidu.com/view/157305.htm

      其中,createHeap()能夠將一個list創建成堆(最大值在最上),而它是基於insertIntoHeap()的,後者的原理是把一個值插入到一個堆中。還有一個重要的函數是topDownHeap(), 這是堆排序的關鍵一步,將位於堆隊列最後的元素,放置到堆頂,然後通過向左右分支做比較,將其沉降到一個合適位置。最後,還有一個輔助功能printHeap(),它能將一個堆隊列,以樹狀打印出來。

 


發佈了18 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章