第十六周專案1 驗證演算法 (6)堆排序

2021-07-25 07:01:58 字數 939 閱讀 3872

問題及**:

/*    

*煙台大學計算機與控制工程學院

*作 者:劉倩

*完成日期:2023年12月9日

*問題描述:用序列作為測試資料,驗證堆排序

*/

#include #define maxsize 20  

typedef int keytype; //定義關鍵字型別

typedef char infotype[10];

typedef struct //記錄型別

rectype; //排序的記錄型別定義

//調整堆

void sift(rectype r,int low,int high)

} int main()

; for (i=1; i<=n; i++)

r[i].key=a[i];

printf("排序前:");

for (i=1; i<=n; i++)

printf("%d ",r[i].key);

printf("\n");

heapsort(r,n);

printf("排序後:");

for (i=1; i<=n; i++)

printf("%d ",r[i].key);

printf("\n");

return 0;

}

執行結果:

學習心得:

先建立大根堆或小根堆,然後將根節點的關鍵字與最後乙個葉子節點交換,然後在調整堆,依此類推

第十六周專案1 驗證演算法(6)堆排序

問題 檔名稱 專案1 6.cbp 作 者 王聰 完成日期 2015年12月15日 版 本 號 v1.0 問題描述 驗證堆排序 輸入描述 無 程式輸出 測試資料 include define maxsize 20 typedef int keytype 定義關鍵字型別 typedef char inf...

第十六周 專案1 驗證演算法 堆排序

檔名稱 1.cpp 作 者 楊俊傑 完成日期 2016年 12月15日 版 本 號 v1.0 問題描述 輸出描述 cpp view plain copy include define maxsize 20 typedef intkeytype 定義關鍵字型別 typedef char infotyp...

第十六周實踐專案1 驗證演算法(4)堆排序

檔名稱 專案1 4.cbp 作 者 劉晨筱 完成日期 2015年12月14日 版 本 號 v1.0 問題描述 用序列作為測試資料,執行演算法對應程式,觀察執行結果並深刻領會演算法的思路和實現方法 輸入描述 無 程式輸出 測試資料 詳情 include define maxsize 20 typede...