常見演算法之排序(高階部分) 堆排序 04

2021-08-19 22:07:55 字數 611 閱讀 2960

package junior.day_01;

public class code_01_sort

for(int i = 0; i < len; i++)//格式化輸出陣列

system.out.printf("%02d:%-4d\n",i,arr[i]);

heapsort(arr);

for(int i = 0; i < len; i++)//格式化輸出陣列

system.out.printf("%02d:%-+4d\n",i,arr[i]); }

public static void heapsort(int arr) }

public static void heapinsert(int arr, int index) }

public static void heapify(int arr, int index, int size)

else

largest = left;

if(arr[largest] < arr[index])//把較大的孩子節點與父節點比較

else//如果較大的孩子節點比父節點大,則與父節點交換位置

}}}

常見排序演算法之堆排序

1.簡介 堆排序是指利用堆這種資料結構所設計的一種排序演算法。2.堆排序中大堆和小堆 大堆 根節點比子節點大 小堆 跟節點比子節點小 3.核心思想 採用大堆的資料結構為例子。陣列轉完全二叉樹,再把這個完全二叉樹構成乙個大堆,將堆頂根節點和末尾節點互換。把剩下的n 1個元素重新構造成大頂堆 最大值已經...

高階排序之堆排序

概念補充 二叉樹 是n個結點的有限集合,該集合或為空 空二叉樹 或者由乙個根節點和兩顆互不相交的 分別稱為根節點的左子樹和 右子樹的二叉樹組成 完全二叉樹 以上是完全二叉樹,具有n個節點的二叉樹按層序遍歷,如果i的節點與同樣深度的滿二叉樹編號為i的節點位置 完全相同,則這個二叉樹為完全二叉樹 性質5...

常見排序演算法 堆排序演算法

基本思想 先將待排序資料化為完全二叉樹,從length 2 1處開始尋找他的左 右子節點,將較大值與父節點進行交換,最後遍歷到根節點處,此時根節點為所有數中的最大值,將該值與最後乙個元素進行交換,length length 1,又從父節點開始進行比較,繼續尋找較大值。將找到的較大值與length 2...