資源描述:
《多種排序算法實(shí)現(xiàn)及其比較.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、廣西工學(xué)院計(jì)算機(jī)學(xué)院《數(shù)據(jù)結(jié)構(gòu)》課程實(shí)驗(yàn)報(bào)告書1)實(shí)驗(yàn)九多種排序算法實(shí)現(xiàn)及其比較學(xué)生姓名:學(xué)號(hào):班級(jí):指導(dǎo)老師:專業(yè):計(jì)算機(jī)學(xué)院軟件學(xué)院提交日期:2013年7月1日1.實(shí)驗(yàn)?zāi)康?)掌握常見的排序方法和實(shí)現(xiàn)排序的算法。2)能根據(jù)待排序記錄關(guān)鍵字的初始狀態(tài)選擇合適的排序方法。2.實(shí)驗(yàn)內(nèi)容(1)實(shí)現(xiàn)用下列方法對(duì)n(假設(shè)n=10)個(gè)數(shù)據(jù)進(jìn)行排序,通過(guò)數(shù)據(jù)測(cè)試每種排序的正確性,包括:1.插入法:直接插入排序,希爾排序2.交換法:冒泡排序,快速排序(流程圖)3.選擇法:簡(jiǎn)單選擇排序,堆排序(流程圖)4.歸并法:歸并排序5.統(tǒng)計(jì)法:基數(shù)排序3.
2、實(shí)驗(yàn)要求(1)上機(jī)前交實(shí)驗(yàn)源程序(紙質(zhì)版),由學(xué)習(xí)委員統(tǒng)一收好交老師(附上不交同學(xué)名單)。(2)用一切你能想到的辦法解決遇到的問(wèn)題,培養(yǎng)解決問(wèn)題的能力。(3)實(shí)驗(yàn)課上進(jìn)行答辯。(4)實(shí)驗(yàn)報(bào)告當(dāng)場(chǎng)交。報(bào)告內(nèi)容包括:實(shí)驗(yàn)?zāi)康摹?shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)代碼、實(shí)驗(yàn)運(yùn)行結(jié)果以及實(shí)驗(yàn)體會(huì)供五部分。3.實(shí)驗(yàn)要求(5)上機(jī)前交實(shí)驗(yàn)源程序(紙質(zhì)版),由學(xué)習(xí)委員統(tǒng)一收好交老師(附上不交同學(xué)名單)。(6)用一切你能想到的辦法解決遇到的問(wèn)題,培養(yǎng)解決問(wèn)題的能力。(7)實(shí)驗(yàn)課上進(jìn)行答辯。(8)實(shí)驗(yàn)報(bào)告當(dāng)場(chǎng)交。報(bào)告內(nèi)容包括:實(shí)驗(yàn)?zāi)康?、?shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)代碼、實(shí)驗(yàn)運(yùn)行結(jié)果以
3、及實(shí)驗(yàn)體會(huì)供五部分。3.主要算法3.1順序存儲(chǔ)結(jié)構(gòu)(1)結(jié)構(gòu)定義:(2)#include(3)#include(4)#include(5)#include(6)#include//各頭文件(7)#defineN10(8)#defineOK1(9)#defineERROR0(10)#defineOVERFLOW-2(11)#defineMAXSIZE100(12)#defineRADIX10(13)#defineT3(14)typedef
4、intInfoType;(15)typedefintKeyType;(16)typedefintArrType[RADIX];//定義宏參(17)(18)(19)//固定類型結(jié)構(gòu)定義(20)typedefstruct(21){(22)KeyTypekey;//關(guān)鍵字(23)InfoTypeotherinfo;//其他數(shù)據(jù)(24)intnext;(25)}RedType;(26)(1)(2)//順序表結(jié)構(gòu)類型定義(3)typedefstructSqList(4){(5)RedTyper[MAXSIZE+1];//元素類型定義(6)i
5、ntkeynum;////關(guān)鍵字?jǐn)?shù)量(7)intlength;//順序表長(zhǎng)度(8)}SqList;(9)(10)(11)//======================函數(shù)聲明=========================//(12)voidCreatSort(SqList&L);//建立順序表(13)voidInsertSort(SqList&L);//直接插入排序(14)voidShellInsert(SqList&L,intdk);//希爾排序(15)voidShellSort(SqList&L,intdlta[],in
6、tt);//希爾排序(16)intPartition(SqList&L,intlow,inthigh);//希爾排序(17)voidQSort(SqList&L,intlow,inthigh);//快速排序(18)voidQuickSort(SqList&L);//快速排序(19)voidSelectSort(SqList&L);//簡(jiǎn)單排序(20)voidHeapAdjust(SqList&L,ints,intm);//堆排序(21)voidHeaoSort(SqList&L);//堆排序(22)voidBubbleSort(S
7、qList&L);//冒泡排序(23)voidDistribute(RedTyper[],inti,ArrTypef,ArrTypee);//基數(shù)排序(24)voidCollect(RedTyper[],inti,ArrTypef,ArrTypee);//基數(shù)排序(25)voidRadixSort(SqList&L);//基數(shù)排序(26)voidprint0(SqListL);(27)voidprint2(SqListL);//輸出數(shù)據(jù)(28)voidprint(SqListL);//輸出數(shù)據(jù)(29)voidprint3(SqLi
8、st&L);(1)//======================函數(shù)聲明=========================//(2)(3)(4)//建立順序表(5)voidCreatSort(SqList&L)(6){//操作結(jié)果:建立一個(gè)順序表