[cpp]view plain
copy
/*
* 檔名稱 :2.cpp
* 作 者 :孟令群
* 完成日期 :2023年 12月15日
* 版 本 號 :v1.0
* 問題描述 :
* 輸出描述 :
*/#include
#include
#include
#include
#define minlength 64 //最短分段長度
typedef
intkeytype;
//定義關鍵字型別
typedef
char
infotype[10];
typedef
struct
//記錄型別
rectype; //排序的記錄型別定義
void
getdata(rectype *&r,
intn)
//對r[low..high]按遞增有序進行直接插入排序
void
insertsort(rectype r,
intlow,
inthigh)
r[j+1]=tmp; //在j+1處插入r[i]
} }
//合併兩個有序表
void
merge(rectype r,
intlow,
intmid,
inthigh)
else
//將第2段中的記錄放入r1中
while
(i<=mid)
//將第1段餘下部分複製到r1
while
(j<=high)
//將第2段餘下部分複製到r1
for(k=0,i=low; i<=high; k++,i++)
//將r1複製回r中
r[i]=r1[k];
} //一趟合併
void
mergepass(rectype r,
intlength,
intn)
//對整個數序進行一趟歸併
//自底向上的二路歸併演算法,但太短的分段,用直接插入完成
void
mergesort(rectype r,
intn)
} intmain()
printf("\n"
);
printf("排序後(後300個):\n"
);
i=0;
while
(i<300)
printf("\n"
);
free(r);
return
0;
}
執行結果:
第十六周專案3 歸併排序演算法改進
問題及 煙台大學計算機與控制工程學院 作 者 劉倩 完成日期 2016年12月9日 問題描述 採用歸併排序 快速排序等高效演算法進行排序,當資料元素較少時 如n 64 經常直接使用直接插入排序演算法等高複雜度的演算法。這樣做,會帶來一定的好處,例如歸併排序減少分配 臨時儲存區域的頻次,快速排序減少遞...
第十六周專案3 歸併排序演算法的排序
問題及 檔名稱 專案3.cpp 作 者 李曉鈺 完成日期 2016年12月17日 版 本 號 v1.0 問題描述 歸併排序演算法的改進 採用歸併排序 快速排序等高效演算法進行排序,當資料元素較少時 如n 64 經常直接使用直接插入排序演算法等高複雜度 的演算法。這樣做,會帶來一定的好處,例如歸併排序...
第十六周專案一 歸併排序
煙台大學計算機與控制工程學院 7 歸併排序 輸入描述 無 輸出描述 若干資料 include include define maxsize 20 typedef int keytype 定義關鍵字型別 typedef char infotype 10 typedef struct 記錄型別 rect...