第16周外部排序之 專案2 敗者樹歸併模擬

2021-07-09 01:22:25 字數 1054 閱讀 9826

編寫程式,模擬改者樹實現5路歸併演算法的過程。

設有5個檔案,其中的記錄的關鍵字如下:

f0: f1: f2:f3: f4:

要求將其歸併為乙個有序段並輸出。

假設這些輸入檔案資料儲存在記憶體中,輸出結果也不必輸出到檔案,而是在螢幕上輸出即可。

**:

#include #define maxsize 20          //每個檔案中最多記錄

#define k 5 //5路平衡歸併

#define maxkey 32767 //最大關鍵字值∞

#define minkey -32768 //最小關鍵字值-∞

typedef int infotype;

typedef int keytype;

typedef struct //記錄型別

rectype;

typedef struct

filetype; //檔案型別

typedef int losertree[k]; //敗者樹是完全二叉樹且不含葉子

rectype b[k]; //b中存放各段中取出的當前記錄

filetype f[k]; //存放檔案記錄的陣列

void initial()

t=t/2;

}ls[0]=s;

}void display(losertree ls) //輸出敗者樹

void k_merge(losertree ls) //利用敗者樹ls將進行k路歸併到輸出

{ int i,q;

for(i=0;i

執行結果:

第16周實踐專案 選擇排序之堆排序

問題 檔名稱 test.cpp 完成日期 2015年12月14日 版本號 v1.0 問題描述 用堆排序法對序列進行排序 輸入描述 無 程式輸出 排序後的序列 include define maxsize 20 typedef int keytype 定義關鍵字型別 typedef char info...

第16周專案1(6)堆排序

問題及 檔名稱 專案1.6.cpp 完成日期 2015.12.19 問題描述 輸入描述 無 程式輸出 測試資料 include define maxsize 20 typedef int keytype 定義關鍵字型別 typedef char infotype 10 typedef struct ...

第16周專案1 (6)基數排序

問題及 檔名稱 1.cpp 作 者 王修文 完成日期 2016年12月15日 版 本 號 v1.0 問題描述 驗證基數排序,完成測試。輸入描述 無 程式輸出 測試資料 include include include define maxe 20 線性表中最多元素個數 define maxr 10 基...