堆排序的圖解過程與其他比較排序算法視頻地址

首先可以看到堆建好之後堆中第0個數據是堆中最大的數據。取出這個數據再執行下堆的刪除操作。這樣堆中第0個數據又是堆中最大的數據,重複上述步驟直至堆中只有一個數據時就直接取出這個數據。 由於堆也是用數組模擬的,故堆化數組後,第一次將A[0]與A[n - 1]交換,再對A[0…n-2]重新恢復堆。第二次將A[0]與A[n – 2]交換,再對A[0…n - 3]重新恢復堆,重複這樣的操作直到A[0]與A[1]交換。由於每次都是將最大的數據併入到後面的有序區間,故操作完成後整個數組就有序了。

堆排序的圖解過程如下:
堆排序的時間複雜度是O(nlogn)。堆排序和選擇排序的元素比較次數與元素的初始排列無關。

其他排序算法的理解可以查看如下地址的以舞蹈方式教學的視頻:
選擇排序:http://v.youku.com/v_show/id_XMjU4NTY5NTcy.html
冒泡排序:http://v.youku.com/v_show/id_XMjU4MTg3MTU2.html
插入排序:http://v.youku.com/v_show/id_XMjU4NTY5MzEy.html
希爾排序:http://v.youku.com/v_show/id_XMjU4NTcwMDIw.html
歸併排序:http://v.youku.com/v_show/id_XMzMyODk5Njg4.html
快速排序:http://v.youku.com/v_show/id_XMzMyODk4NTQ4.html

其中冒泡排序、插入排序、歸併排序是穩定排序。插入排序和歸併排序是節儉排序。
冒泡排序和快速排序屬於交換排序。

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