資源描述:
《數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)快速排序和歸并排序》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、XX學(xué)院信息科學(xué)與工程系課程設(shè)計(jì)說明書課程名稱:數(shù)據(jù)結(jié)構(gòu)課程代碼:題目:快速排序與歸并排序年級/專業(yè)/班:學(xué)生姓名:奉XX學(xué)號:1440000000指導(dǎo)教師:易開題時(shí)間:2015年12月30日完成時(shí)間:2016年1月10日26目錄摘要1一、引言3二、設(shè)計(jì)目的與任務(wù)31、課程設(shè)計(jì)目的32、課程設(shè)計(jì)的任務(wù)3三、設(shè)計(jì)方案31、需求分析32、概要設(shè)計(jì)43、詳細(xì)設(shè)計(jì)54、程序清單13四、調(diào)試分析與體會(huì)19五、運(yùn)行結(jié)果20六、結(jié)論24七、致謝24八、參考文獻(xiàn)25摘要數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì),列舉了數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)實(shí)例,通過綜合訓(xùn)練,能夠培養(yǎng)學(xué)生實(shí)際分析問題、解決問
2、題、編程和動(dòng)手操作等多方面的能力,最終目的是幫助學(xué)生系統(tǒng)地掌握數(shù)據(jù)結(jié)構(gòu)的基本內(nèi)容,并運(yùn)用所學(xué)的數(shù)據(jù)結(jié)構(gòu)知識去解決實(shí)際問題。其中內(nèi)容包括數(shù)組、鏈接表、棧和隊(duì)列、遞歸、樹與森林、圖、堆與優(yōu)先級隊(duì)列、集合與搜索結(jié)構(gòu)、排序、索引與散列結(jié)構(gòu)等關(guān)鍵字:數(shù)據(jù)結(jié)構(gòu);分析;掌握Abstract26Datastructurecoursedesign,liststhedatastructurecoursedesignasanexample,throughthecomprehensivetraining,tocultivatestudents'practicalanal
3、ysisandsolveproblemsinmanyaspects,programming,andhands-onability,theultimategoalistohelpstudentstosystematicallymasterthebasiccontentofdatastructure,andusingthedatastructureofknowledgetosolvepracticalproblems.Contentincludingarray,linkedlist,stackandqueue,recursion,treeandfor
4、est,graph,heapandpriorityqueue,thestructureofthecollectionandsearch,sorting,indexingandhashingstructure,etcKeywords:datastructure;Analysis;master26《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)----快速排序與歸并排序一、引言二、將一組數(shù)據(jù)運(yùn)用快速排序與歸并排序進(jìn)行排序,要求使用遞歸與非遞歸方法三、本次課程設(shè)運(yùn)用到了數(shù)組、鏈接表、棧、遞歸、排序等結(jié)構(gòu)。四、在學(xué)校機(jī)房進(jìn)行程序設(shè)計(jì),編寫代碼,實(shí)現(xiàn)程序的功能二、設(shè)計(jì)目的與任務(wù)1、
5、課程設(shè)計(jì)目的1、能夠更靈活地應(yīng)用所學(xué)數(shù)據(jù)結(jié)構(gòu)知識,獨(dú)立完成問題分析,結(jié)合數(shù)據(jù)結(jié)構(gòu)理論知識,編寫程序求解指定問題。2.初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測試等基本方法和技能;3.提高綜合運(yùn)用所學(xué)的理論知識和方法獨(dú)立分析和解決問題的能力;4.數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)是學(xué)習(xí)C語言的一個(gè)重要過程,通過此次實(shí)踐,學(xué)生對書本上的知識通過上機(jī)操作有了更形象的理解,對今后的學(xué)習(xí)有很大的幫助。2、課程設(shè)計(jì)的任務(wù)問題描述:做一個(gè)快速排序與歸并排序三、設(shè)計(jì)方案1、需求分析1)對一組數(shù)據(jù)進(jìn)行快速排序和遞歸排序2)快速排序:快速排序?qū)馀菖判虻囊环N改進(jìn)。它的基本
6、思想是,通過一趟排序?qū)⒋庞涗浄指畛瑟?dú)立的兩部分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,則可分別對兩部分記錄繼續(xù)進(jìn)行排序,以達(dá)到整個(gè)序列有序。3)歸并排序:歸并排序是又一類不同的排序方法。“歸并”的含義是將兩個(gè)或兩個(gè)以上的有序表組合成一個(gè)新的有序表。無論是順序存儲(chǔ)結(jié)構(gòu)還是鏈表存儲(chǔ)結(jié)構(gòu),都可在O(m+n)(m,m分別為有序表的長度)的時(shí)間量級上實(shí)現(xiàn)。利用歸并的思想容易實(shí)現(xiàn)排序。262、概要設(shè)計(jì)1)抽象數(shù)據(jù)類型(ADT)如下:ADTSqLint{數(shù)據(jù)對象:D={a
7、ai∈int,i=1,2,…,n,n≧0}數(shù)據(jù)關(guān)系:R1={8、i>
9、ai-1,ai∈D,i=2,…,n}基本操作:intInitSqlint(SqLint&L)//構(gòu)造一個(gè)空的線性表LvoidAssignment(SqLint&L)//給表L.element賦值voidOutput(SqLintL)//輸出表里的L.ELenght個(gè)元素StatusInitStack(SqStack&S)//棧的初始化StatusPush(SqStack&S,SElemTypee)//入棧StatusPop(SqStack&S,SElemType&e)//出棧intPartition(SqLint&L,intlow,inth
10、igh)//交換順序表L.element里的值,以樞軸為中心,小的在前,大的在后intQuickSort(SqLint&L,intlow