數(shù)據(jù)結(jié)構(gòu)課程設(shè)計57651_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計57651_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計57651_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計57651_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計57651_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、v1.0可編輯可修改大連科技學(xué)院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計題目排序綜合學(xué)生姓名專業(yè)班級_指導(dǎo)教師職 稱副教授所在單位教學(xué)部主完成日期2013年1月11日課程設(shè)計報告單學(xué)號19姓名王復(fù)之專業(yè)班級網(wǎng)絡(luò)工程11-1考核項目評分備注1平時工作態(tài)度及遵守紀(jì)律情況(10 分)2掌握基本理論、關(guān)鍵知識、基本技能的程度和 閱讀參考資料的水平(10 分)3獨立工作能力、綜合運用所學(xué)知識分析和解決冋題能力及實際工作能力提咼的程度(20 分)4完成課程設(shè)計說明書及軟件的情況與水平(小 組分工情況、規(guī)范性、整潔清楚、敘述完整性、 思路清晰程度、工作量及實際運行情況和創(chuàng)新 性)(60 分)總評成績綜合評定:指導(dǎo)教師簽字:(優(yōu)、良

2、、中、及格、不及格)2013年1月11日數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書一、任務(wù)及要求:1. 設(shè)計(研究)任務(wù)和要求研究內(nèi)容:排序綜合任務(wù)和要求:(1 )學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)知識,掌握數(shù)據(jù)結(jié)構(gòu)典型的算法的使用。(2)對指導(dǎo)教師下達(dá)的題目進(jìn)行系統(tǒng)分析。(3 )根據(jù)分析結(jié)果完成系統(tǒng)設(shè)計。(4)編程:在計算機(jī)上實現(xiàn)題目的代碼實現(xiàn)。(5)完成對該系統(tǒng)的測試和調(diào)試。(6)提交課程設(shè)計報告。要求完成課程設(shè)計報告 3000字以上(約二十頁)。完成若干綜合性程序設(shè)計題目,綜合設(shè)計題目的語句行數(shù)的和在100行語句以上。2. 原始依據(jù)結(jié)合數(shù)據(jù)結(jié)構(gòu)課程中的基本理論和基本算法,正確分析出數(shù)據(jù)的邏輯結(jié)構(gòu),合理地選擇相應(yīng)的 存儲結(jié)構(gòu),

3、并能設(shè)計出解決問題的有效算法。提高程序設(shè)計和調(diào)試能力。學(xué)生通過上機(jī)實習(xí),驗證 自己設(shè)計的算法的正確性。學(xué)會有效利用基本調(diào)試方法,迅速找出程序代碼中的錯誤并且修改。3. 參考題目:、工作量2周(10個工作日)時間三、計劃安排第1個工作日 查找相關(guān)資料、書籍,閱讀示例文檔,選擇題目。第2個工作日第3個工作日:設(shè)計程序結(jié)構(gòu)、模塊圖。第4個工作日第告的撰寫。9個工作日:完成程序的編碼,并且自己調(diào)試、測試。穿插進(jìn)行課程設(shè)計報第10個工作日:上交課程設(shè)計報告,由教師檢查軟件測試效果、檢查課程設(shè)計報告,給出學(xué)生成績。指導(dǎo)教師簽字:2012 年12月24日目錄大連科技學(xué)院1排序綜合11. 需求分析1任務(wù)描述1

4、功能分析12. 概要設(shè)計1主要全程變量和數(shù)據(jù)結(jié)構(gòu) 1程序模塊結(jié)構(gòu) 23. 詳細(xì)設(shè)計3程序的主要結(jié)構(gòu)如下圖所示。 3數(shù)據(jù)結(jié)構(gòu)定義 3顯示各排序算法排序后的的數(shù)據(jù)。 4函數(shù)實現(xiàn)(例如直接插入排序) 44. 調(diào)試分析5直接插入排序5起泡排序5直接選擇排序5希爾排序6快速排序6堆排序65. 測試結(jié)果及運行效果7參考文獻(xiàn)11附錄全部代碼12數(shù)據(jù)結(jié)構(gòu)課程設(shè)計總結(jié)24v1.0可編輯可修改排序綜合1. 需求分析任務(wù)描述至少采用3種方法實現(xiàn)上述問題求解,并把排序后的結(jié)果保存在不同的文件中。功能分析顯示隨機(jī)數(shù),是調(diào)用rand()函數(shù)輸出數(shù)組a。數(shù)組a中保存有隨機(jī)產(chǎn)生的隨機(jī)數(shù); 直接選擇排序,是通過n-1次關(guān)鍵字之

5、間的比較,從n-i+1個記錄中選出關(guān)鍵字最小的 記錄,并和第i個記錄交換之;起泡排序,是如果有n個數(shù),則要進(jìn)行n-1趟比較,在 將整個待排記錄序列分割成為若干子序列分別進(jìn)行直接插入排序,待整個排序中的記錄“基本有序”時,在對全體記錄進(jìn)行一次直接插入排序;直接插入排序,是將一個記錄插入到以排序好的有序表中,從而得到一個新的記錄數(shù)增1的有序表。設(shè)整個排序有n個數(shù),則 進(jìn)行n-1趟排序,即:先將序列中的第一個記錄看成一個有序的子序列,然后 第2個記錄起逐個進(jìn)行插入,直接整個序列變成按關(guān)鍵字非遞減有序列為止;快速排序,是通過一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的

6、所有數(shù)據(jù)都要小,然后再按此方法對這兩部分?jǐn)?shù)據(jù)分別進(jìn)行快速排序,整個排 序過程可以遞歸進(jìn)行,以此達(dá)到整個數(shù)據(jù)變成有序序列;堆排序,主要由建立初始堆和反復(fù)重建堆這兩部分的時間開銷構(gòu)成,它們均是通過調(diào)用Heapify實現(xiàn)的。2. 概要設(shè)計主要全程變量和數(shù)據(jù)結(jié)構(gòu)(1)數(shù)據(jù)結(jié)構(gòu):#i nclude ""#in elude <>#defi ne s 100 typedef struct record int key;static struct record a1s,a2s,a3s,a4s,a5s,a6s,rec; int a7,b7;file()(2)算法的入口及其說明#i

7、n clude<>#defi ne s100直接插入排序* n");printf("*2.希爾排序* n");printf("*3.起泡排序* n");printf("*4.快速排序* n");printf("*5.簡單選擇排序* nprintf("*6.堆排序* n");printf("*7.總結(jié)* n");printf(” *0.退出*n");printf("* n")以上 printf("* n")系統(tǒng)主菜單

8、輸出程序模塊結(jié)構(gòu)程序劃分為以下幾個模塊(即實現(xiàn)程序功能所需的函數(shù))主控菜單項選擇函數(shù):menu_select()插入排序函數(shù):InsertSort()選擇排序函數(shù):StlectSort() 起泡排序函數(shù):BubbleSort() 堆排序函數(shù):heapsort () 快速排序函數(shù):Quicksort () 希爾排序:Shell Sort ()3. 詳細(xì)設(shè)計程序的主要結(jié)構(gòu)如下圖所示圖3-1函數(shù)調(diào)用關(guān)系圖其中main()是主函數(shù),它進(jìn)行菜單驅(qū)動,根據(jù)選擇項10調(diào)用相應(yīng)的函數(shù)數(shù)據(jù)結(jié)構(gòu)定義圖3-2課程設(shè)計流程圖28顯示各排序算法排序后的的數(shù)據(jù)。圖3-3程序工作流程圖函數(shù)實現(xiàn)(例如直接插入排序)#i nc

9、lude ""#in elude <>#defi ne s 100typedef struct recordint key;static struct record a1s,a2s,a3s,a4s,a5s,a6s,rec; int a7,b7;file()printf("printf("printf("printf("*0.* n");直接插入排序 * n");n");* *1退出void Straightnsert_sort(r, n) /*struct record r;int n;* n

10、"); 直接插入*/ int i,j;a1=0;b1=0;for(i=1;i<=n ;i+)prin tf("%4d",ri.key);prin tf("n");for(i=2;i<=n ;i+) r0=ri;j=i-1;while(j>=0) && (r0.key<rj.key) b1+;rj+1=rj-;rj+1=r0;a1=a1+2;printf(' *直接插入 *n");for(i=1;i<=n ;i+) prin tf("%4d",ri); prin

11、tf("n");printf("move:%d time, compete:%d time",a1,b1); prin tf("n");4. 調(diào)試分析直接插入排序?qū)⒁粋€記錄插入到已排好的有序表中,從而得到一個新的,記錄數(shù)增加1的有序表起泡排序首先將第一個記錄的關(guān)鍵字和第二個記錄的關(guān)鍵字進(jìn)行比較,若為逆序,則將兩個記錄交換,然后比較第二個記錄和第三個記錄的關(guān)鍵字。依此類推,知道第N-1個和第N個記錄的關(guān)鍵字進(jìn)行過比較為止。上述為第一趟排序。其結(jié)果使得關(guān)鍵字的最大被安 排到最后一個記錄的位置上。然后進(jìn)行第二趟起泡排序,對前N-1個記錄進(jìn)行

12、同樣操作。 一共要進(jìn)行N-1趟起泡排序。直接選擇排序每一趟從待排序的記錄中選出關(guān)鍵字最小的,順序放在以排好序的子文件的最后,知道全部記錄排序完畢希爾排序先取一個小于n的整數(shù)d,作為第一個增量,把文件全部記錄全部分成di個組。所 有距離為di的倍數(shù)的記錄放在同一個組中。先在個組中進(jìn)行直接插入排序:然后,取 第二個增量d2<d1重復(fù)上述的分組和排序,直至所取的增量dt=1 (dt<dt-1<<d2<d1), 即所有記錄放在同一組中進(jìn)行直接插入排序為止??焖倥判蛟O(shè)置兩個變量i、j,排序開始的時候:i=0 , j=N-1 ;以第一個數(shù)組元素作為 關(guān)鍵數(shù)據(jù),賦值給 key,

13、即key=A0;從j開始向前搜索,即由后開始向前搜索(j -),找到第一個小于 key的值A(chǔ)j ,Ai與Aj交換;從i開始向后搜索, 即由前開始向后搜索(i + ),找到第一個大于 key的Ai ,Ai與Aj交換; 重復(fù)第3、4、5步,直到I=J ; (3,4 步是在程序中沒找到時候 j=j-1 ,i=i+1 , 直至找到為止。找到并交換的時候i , j指針位置不變。另外當(dāng) i=j這過程一定正好是i+或j-完成的最后令循環(huán)結(jié)束。)堆排序堆排序的時間,主要由建立初始堆和反復(fù)重建堆這兩部分的時間開銷構(gòu)成,它們均是通過調(diào)用Heapify實現(xiàn)的。堆排序的最壞時間復(fù)雜度為0(nlogn)。堆序的平均性能

14、較接近于最壞性能。由于建初始堆所需的比較次數(shù)較多,所以堆排序不 適宜于記錄數(shù)較少的文件。堆排序是就地排序,輔助空間為O(1 )。排序算法時間復(fù)雜度空間復(fù)雜度是否穩(wěn)定直接插入排序O(n2 )O(1)穩(wěn)定起泡排序O(n2 )O(1)穩(wěn)定直接選擇排序O(n2 )O(1)不穩(wěn)定希爾排序O()O(1)不穩(wěn)定快速排序O(n log 2n)O( nlog 2n)不穩(wěn)定堆排序O(n log 2n)O(l)不穩(wěn)定圖4-1時間復(fù)雜度分析5. 測試結(jié)果及運行效果(1)運行程序進(jìn)入程序開始菜單圖5-1開始菜單(2)開始菜單中會出現(xiàn)四個選項:完全有序的情況;逆序的情況;隨機(jī)排序的 情況;退出。運行時選擇了隨機(jī)排序的情況

15、,得到100個隨機(jī)數(shù)的隨機(jī)排序,如下圖。施到丹獲得觀個隨機(jī)數(shù)二A8467 6334265001916-S15724114782935826962244&4 570528145232811827 9961 491 2995 11942 4«27 54363239114604 3902 153 29212382174211871619718198 95 5447217261-1771 11S38?2629917035 98942870323811313223033317673 46G415141 77112S253Gfl68255472764432623

16、27572003712859 8723 974127529 77812316 303&22190 1842 2B830106 9040 S942192642264fi2744t2380E1589H t7292437M1535H150063110124393 354819629L2E2324084199541875611840 4966 7376139312630816944324392462611323 5537215381£11820822292916541 4陰3請選J睪排序算迭圖5-2隨機(jī)排序(3) 得出隨機(jī)數(shù)字后,程序列出七個選項:冒泡排序;直接插入排序;簡單選擇排序

17、;快速排序;希爾排序;堆排序;退出。選擇冒泡排序,對100個隨機(jī)數(shù)進(jìn)行冒泡排序,得到結(jié)果如下圖。3 216 327 641 9431S5T19301954196550833051355441334243469S4B334918496655175E37 58ia63S6&7296B6S&8687376?118723B9429S4097419894103211323115381184011965120251 31612382126231285?13931146?1147?11500615141153581589016118165411682216?1916?4417 0351742

18、11?6731«471187161«756192641962?1971»1?85519121?5200372153821726221?022 &482292923805238112408424370243932446524626255472S667262?9263B826504265632744627 S2276442814fc282E3287032,93593010fc30333311013132232391324393266232757move: 641 tine , compete = 2554 t ine 囁曆算法 j-24-5圖5-3起泡排序(4

19、) 為了測試該程序,下面繼續(xù)嘗試進(jìn)行了其他幾種排序方式,結(jié)果如下圖所示直30move:Z c H II圖5-4直接插入排序可 甲 | 先 扌-于 xxjtxxxxjcxxiaxxxxNxxxxxxxx02817 225 331 94418581?311?&2206430523&4142434S954B334?184»6fc55175537 5S10630&6?2¥6»686868737&77118723«?429040?41999410325113251153811843119681202513 3L6123821Z6Z3

20、12«5?13931146?114771LS00615141.15350158?01611»16541168221&9191694417 03517421176731847118716L8756192&419&29197181989519912199S4200372153S217262219022 6482292923805238112404243?024393244652462625&4725&&72629?2&308265042&9632744&2?&442 圧丄字仝 5 今 30:L0&#

21、163;MM2 仝 3丄丄0丄 31322323913243?326&2327S7tzine圖5-5簡單選擇排序簡單選擇排序結(jié)果如上圖圖5-6快速排序快速排序結(jié)果如上圖0 0 15 9 8 225 30? 331 ?4518581?322ff?l32136-114243%754833471®49665517 5537581063066727686868687376771187238?42?0409741787410325113231153«1184011?68120 25123161238212623128591393114671147711500615141153

22、50158901611«165411682216?1919 441703517421176731847118716187S6192641929197181989519912199542003721S3821726221 9022£4822929239052381124084247024293244&46 27529276 442S1462S2S32S: 7032935939106303333119131322323913243932&62tine圖5-7希爾排序希爾排序結(jié)果如上圖O 15 V 8 225 Q 331 94518S819322071324436

23、41U469S483341849665517553 5810630667256868686873767711872389429040974198941032511323115381184011568120251231612382126231285139311467114771150B615141153501589016118165411&82Z1631J1694417 035174211?673184711»71618756192641962919718198951?9121995-4200372153821726221902264822929238053381d24H842

24、43?0243932446524626255472566726299263082&50426963274-16275227644281462825328703293593010636333311013132232391324393266232757018141544 22S 371 94518581932207132953684469S4893491849Gt5517S537E8ia63066?296883694473837?188833904090S9?741989410325113231153811840119681202512 31612382126231285139311467

25、1147711500615141153881602116125165471&8281652516?5017 0351743917a97184871871GlS75G192fi4196291971819S951991219954200372153S2172G2219022 ?Q922929238052811240e4243?e24460245O&2462G255472566726299263892&564271452749327 F;812764428151282532870329359301063036031121313223243?32447326773275?mov

26、e : 31121 time, compete: 27581 time圖5-8堆排序堆排序結(jié)果如上圖以上圖片為各種排序的結(jié)果,排序結(jié)果后顯示出各種方式排序所用移動次數(shù)和比較 次數(shù),以方便比較使用。參考文獻(xiàn)1 嚴(yán)蔚敏 吳偉民著數(shù)據(jù)結(jié)構(gòu)(C語言版).清華大學(xué)出版.1999年第一版2 陳一華等編.數(shù)據(jù)結(jié)構(gòu)-使用C語言.電子科技大學(xué)出版社.1998年第一版3 譚浩強(qiáng).C語言程序設(shè)計(第二版).北京.高等教育出版社.2002附錄全部代碼#i nclude ""#in elude <> #defi ne s 100 typedef struct recordint key;

27、static struct record a1s,a2s,a3s,a4s,a5s,a6s,rec;int a7,b7;file()printf("* n")printf("*1.直接插入排序* nprintf("*2.希爾排序* n");printf("*3.冒泡排序* n");printf("*4.快速排序* n");printf("*5.簡單選擇排序* nprintf("*6.堆排序* n");printf("*7.總結(jié)* n");prin tf(&q

28、uot; *0.退出* n");prin tf("* n")");");void Straightnsert_sort(r,n) /*直接插入 */ struct record r; int n; int i,j;a1=0;b1=0;for(i=1;i<=n ;i+)prin tf("%4d",ri.key);prin tf("n");for(i=2;i<=n ;i+) r0=ri;j=i-1;while(j>=0) && (r0.key<rj.key) b1+;r

29、j+1=rj-;rj+1=r0;a1=a1+2;printf("*直接插入 *n");for(i=1;i<=n ;i+)prin tf("%4d",ri);prin tf("n");printf("move:%d time, compete:%d time",a1,b1);prin tf("n");希爾排序*/void Shell_sort(r, n) /* struct record r;int n; struct record rec,temp; int i,j,t,h;a2=0;b2

30、=0;for(i=1;i<=n ;i+)prin tf("%4d",ri.key); prin tf("n");t=n/2;while(t>=1) h=t;for(j=h;j <n ;j+) rec=rj;i=j-h;while(i>=0) && (ri.key>) b3+;temp=ri+h;ri+h=ri;ri=temp;i=i-h;a2=a2+3;t=t/2;b2+;printf(" *n");for(i=0;i< n;i+)prin tf("%4d",ri

31、);prin tf("nH);printf("move:%d time, compete:%d time",a3,b3);prin tf("nH);冒泡排序*/void Bubblle_sort(r, n) /* struct record r;int n; struct record rec;int i,j,m,flag; a3=0;b3=0; for(i=1;i<=n ;i+) prin tf("%4d",ri.key); prin tf("nH);m=n;flag=1;for(i=1;i<=m-1;i+)

32、flag=0;for(j=0;jv=m-i-1;j+) if(rj.key>rj+1.key) b3+;=rj.key; rj.key=rj+1.key; rj+1.key=; a3=a3+3; flag=1;if(flag=0) break;printf("*冒泡排序*n");for(i=0;i< n;i+)prin tf("%4d",ri.key);prin tf("nH);compete: %d time",a3,b3);prin tf("move: %d time,prin tf("nH);in

33、t push(h,top, m,n) int h;int top ,m, n; h+top=m; h+top=n; return(top); int pop(h,top, m,n) int h, top,*m,* n; *m=htop-;*n=htop-;return(top);int quick(r,i,j)struct record r;int i,j;rec=ri;while(ivj) while(i<j)&&( rj.key>) j-; b4+;if(i<j)ri+=rj;a4+;while(i<j)&&(ri.key<=)

34、 i+;b4+;if(i<j)rj-=ri;a4+;ri=rec;a4+;return(i);快速排序*/void Quick_sort(r,l,h) /* struct record r; int l,h; int sss;int top,i,j,k;for(i=1;i<=s;i+)prin tf("%4d",ri.key);prin tf("n");i=l;j=h;top=-1; do while(ivj) k=quick(r,i,j);if(j-k>1)top=push(ss,top,k+1,j); j=k-1;if(top>

35、;0)top=pop(ss,top,&j,&i);while(top>=0)|(i<j);printf("*n"); *for(i=1;i<=s;i+)prin tf("%4d",ri.key);prin tf("nH);prin tf("move: %d time, compete: %d time",a4,b4); 簡單選擇排序*/void Simple_select_sort(r, n) /* struct record r;int n;int i,j,m;a 5=0;b 5=0;fo

36、r(i=1;i<=n ;i+)prin tf("%4d",ri.key);prin tf("nH);for(i=1;i<=n-1;i+) m=i;for(j=i+1;j<=n ;j+) if(rj.key<rm.key) m=j;b5+;if(i!=m) rec=ri; ri=rm; rm=rec; a5=a5+3;printf(" *單 選 擇 *n");for(i=1;i<=s;i+)prin tf("%4d",ri.key);prin tf("nH);prin tf("

37、move:%d time, compete:%d time",a5,b5); prin tf("nH);void p(r, n) /*次數(shù)排列*/int r;int n; in t rec;int i,j;for(i=1;i<=n ;i+) rec=ri;j=i-1;while(j>0) && (rec<rj) rj+1=rj;j=j-1;rj+1=rec;if(r=a)printf(”關(guān)鍵字移動次數(shù)排列:n");elseprintf("關(guān)鍵字比較次數(shù)排列:n");for(i=1;i<=n ;i+)pri

38、n tf("%8d",ri);prin tf("nH);void heap (r,l,m)/*堆的子函數(shù) */struct record r;int l,m; int i,j;i=l;j=2*i;rec=ri;while(j<=m) if(j<m)&&(rj.key>rj+1.key)j+;b6+;if>rj.key) b6+;ri=rj;i=j;j=2*i;a6+;else j=m+1;ri=rec;void Heap_sort(r, n) /*堆排序 */struct record r;int n;int l;a 6=0

39、;b6=0;for(l=1;l<=n;l+)prin tf("%4d",rl.key);prin tf("n");for(匸 n/2;l>=1;l-) heap(r,l, n);for(l=n;l>=2;l-) rec=r1;r1=rl;rl=rec; a6=a6+3; heap(r,1,l-1);printf(" *n");for(l=n;l>=1;l-)prin tf("%4d",rl.key);prin tf("nH);prin tf("move: %d time,

40、compete: %d time ",a6,b6);prin tf("nH);compete()printf("*內(nèi)部排序結(jié)n");prin tf(" -printf("移動次數(shù)n");printf("-n");printf("直接插入%6d%8dnprintf("希爾排序%6d%8dn ",a2,b2);printf("冒泡排序%4d%8dn ",a3,b3);printf("快速排序%4d%8dn ",a4,b4);printf(&

41、quot;簡單選擇%4d%8dn ",a5,b5);printf("堆的排序%4d%8dn ",a6,b6);prin tf(" -n");n");比較次數(shù)",a1,b1);mai n() char ch; int i,j,t,k;prin tf("*n ")printf("請選擇初始時數(shù)的順序nprin tf("1-完全有序的情況n");prin tf("2-逆序的情況n");prin tf("3-隨機(jī)排序的情況n");prin tf

42、("0-退出n");prin tf("*n")ch=getch();switch(ch)case '1': ran d();for(i=0;i<s;i+)prin tf("%5d",ai=ra nd(5); for(i=0;i<s-1;i+) for(j=i+1;j<s;j+) if(ai>aj)t=ai;ai=aj;aj=t;printf("完全有序的數(shù)列為:n");for(i=0;i<s;i+)prin tf("%5d",ai);prin tf(

43、"n");for(i=1;i<7;i+)printf("請選擇排序算法n");printf("冒泡排序1n");printf("直接插入排序2n");printf("簡單選擇排序3n");printf(”快速排序4n");printf(”希爾排序5n");printf(”堆排序6n");prin tf("退出0n");ch=getch();switch(ch)case 'O':exit(O);case'1':

44、 Bubblle_sort(a,s);break;case'2': Straightnsert_sort(a,s);break;case'3': Simple_select_sort(a,s);break;case'4': Quick_sort(a,0,s-1);break;case'5': Shell_sort(a,s);break;case'6': Heap_sort(a,s);break; default:exit(O);break;case '2': ran d();for(i=0;i<

45、;s;i+)prin tf("%5d",ai=ra nd(5); for(i=0;i<s-1;i+) for(j=i+1;j<s;j+) if(ai<aj)t=ai;ai=aj;aj=t;printf("逆序的數(shù)列為:n");for(i=O;i<s;i+)prin tf("%5d",ai);prin tf("n");for(i=0;i<7;i+)printf("請選擇排序算法n");printf("冒泡排序1n");printf("直接插入排序2n");printf("簡單選擇排序3n");printf(”快速排序4n");printf(”希爾排序5n");p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論