直接插入排序冒泡排序快速排序—于—實驗七_第1頁
直接插入排序冒泡排序快速排序—于—實驗七_第2頁
直接插入排序冒泡排序快速排序—于—實驗七_第3頁
直接插入排序冒泡排序快速排序—于—實驗七_第4頁
直接插入排序冒泡排序快速排序—于—實驗七_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

VIP免費下載

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

文檔簡介

1、直接插入排序冒泡排序快速排序一于一實驗七寧德師范學(xué)院計算機系實驗報告(20142015學(xué)年第一學(xué)期)課程名稱數(shù)據(jù)結(jié)構(gòu)實驗名稱實驗七數(shù)據(jù)的排序與檢索專業(yè)計算機科學(xué)與技術(shù)年級2013級B2013102學(xué)號姓名于141指導(dǎo)教師毛雁明實驗日期2014-12-2實驗?zāi)康呐c要求:1、掌握數(shù)據(jù)結(jié)構(gòu)中的幾種常用排序方法:插入排序、快速排序、選擇排序等。2、遇到實際問題能夠選擇適當(dāng)?shù)呐判蚍椒ń鉀Q。實驗設(shè)備(環(huán)境):微機、C語言編程環(huán)境(VC+實驗內(nèi)容:給定的數(shù)組listN=213,111,222,77,400,300,987,1024,632,555試分別用直接插入排序、冒泡排序、快速排序?qū)ι鲜鰯?shù)據(jù)進行排序。要

2、求:每種排序算法編寫為獨立的自定義函數(shù)且要求輸出每趟排序后的數(shù)據(jù)排列序列情況。7 / 8實驗步驟、實驗結(jié)果及分析:函數(shù)代碼#include#definen10typedefstructintkey;RecType;typedefRecTypeSeqListn+1;voidinsertSort(SeqListr)inti,j;for(i=2;i=n;i+)r0=ri;j=i-1;while(r0.keyrj.key)rj+1=rj;j-;rj+1=r0;voidbubblesort(SeqListr)inti,j,exchange;for(i=1;i=i;j-)if(rj+1.keyrj.key

3、)r0=rj+1;rj+1=rj;rj=r0;exchange=1;if(!exchange)break;intpartition(SeqListr,inti,intj)RecTypepivot=ri;while(ij)while(i=pivot.key)j-;if(ij)ri+=rj;while(ij&ri.key=pivot.key)i+;if(ij)rj-=ri;ri=pivot;returni;voidquicksort(SeqListr,intlow,inthigh)intpivotpos;if(lowhigh)pivotpos=partition(r,low,high);quick

4、sort(r,low,pivotpos-1);quicksort(r,pivotpos+1,high);main(void)intlow=1,high=10;SeqListr=0,213,111,222,77,400,300,987,1024,632,555;inti;n);n);insertSort(r);printf(直接插入排序算法:for(i=1;i=n;i+)printf(%-6d,ri);printf(n);bubblesort(r);printf(冒泡排序算法:for(i=1;i=n;i+)printf(%-6d,ri);printf(n);quicksort(r,low,hig

5、h);printf(快速排序算法:nfor(i=1;i=n;i+)printf(%-6d,ri);printf(n);(2)主函數(shù)流程圖(3)運行結(jié)果第i趟結(jié)果第2池事臬冒泡排序:軍1趟結(jié)果 第2趟結(jié)果 第3趟結(jié)果 第”0結(jié)果 第5趟結(jié)果 第6強結(jié)果 第7趟結(jié)果 第8趟結(jié)果 第9趟結(jié)果第1趟結(jié)果 第2趟結(jié)果 第m趟結(jié)果 第4超結(jié)果 第s榭給果 重6箱器巢-772131112223004009871024G32-7?1112132223004U0555632 198?1024111.213t 222直接插入排序; :77 4009871024632555-111213! 222:774萌3009

6、871024632555?7111213222003009871024632555-771112132224酗3098710246325ss7711121322230340098710246325S577111213222300400VB71024632S55771112132223004009871024G3255577111213222300400632987102455577111213222300400555632?871日24?7111213快速排序*222 AWA 3Q098?1024632SS5-771112132224003009871024632555771112132223

7、00987102432鵑B7711121322230040098710246325557711121322230040B555632 1J8710247711121322230040 B555632 1?871024to continuePprts any key(4)實驗總結(jié)本實驗主要考查直接插入排序、冒泡排序、快速排序三項函數(shù)調(diào)用,難度還是有的,需要我們首先理解這三種排序方式,排序?qū)嵸|(zhì),然后我們就需要寫程序代碼,主函數(shù)還是很好寫的,快速排序算法代碼是個難點,還要嵌套一個調(diào)用函數(shù)需要我們在草稿紙上事先演算下,進行多次調(diào)試,達到要求。直接插入排序的方法是首先在當(dāng)前有序區(qū)ri.i-1中查找人ri的正常插入位置k;然后將rk.i-1中的記錄均后移一個位置,騰出k位置上的空間插入ri。其他方法與這有點不同,畫主函數(shù)流程圖要求我們對代碼整體有個框架認識,首先動態(tài)分配空間,建立順序表,然后輸入整數(shù)進行判斷,不符合時繼續(xù)輸入整數(shù),符合時進行選擇,然后執(zhí)行功能,選擇退出時,整個程序都退出。雖然經(jīng)過上學(xué)期對C語言半年的學(xué)習(xí)可以說掌握的基本可以,但是幾天不練就會手生,甚至不知如何下手,這時我們要查閱課本,通過這次實驗的練習(xí),我在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的同時也對C語言進行了

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論