




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告五專(zhuān)業(yè): 自動(dòng)化 班級(jí): 0710 學(xué)號(hào): 0901071002 姓名: 日期: 2009. 12.15 程序:排序算法設(shè)計(jì)比較 實(shí)驗(yàn)五排序算法設(shè)計(jì)和比較【實(shí)驗(yàn)內(nèi)容與要求】問(wèn)題描述:利用直接插入排序、冒泡排序、快速排序?qū)?shù)列進(jìn)行排序。基本要求:(1) 能隨機(jī)生成30個(gè)值為0到100的數(shù)。(2) 用于排序的輸入數(shù)列可以是要求(1)中隨機(jī)生成的,也可以是鍵盤(pán)輸入。(3) 輸出結(jié)果為利用三種方法排序后的結(jié)果,并能顯示三種算法時(shí)間、空間性能參數(shù)值。【測(cè)試數(shù)據(jù)】由隨機(jī)自行生成若干個(gè)數(shù),進(jìn)行排序。二、程序設(shè)計(jì)的基本思想,原理和算法描述:(包括程序的結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),輸入/輸出設(shè)計(jì),符號(hào)名說(shuō)明
2、等)1) 符號(hào)說(shuō)明: m1,m2,m3 代表三種排序法的循環(huán)次數(shù) a,b,c 分別用來(lái)存儲(chǔ)三次排序的數(shù)據(jù) temp 中間變量 n 參與排序的數(shù)字個(gè)數(shù) maopao(a,n) 冒泡程序排序 zhicha(b,n) 直接插入排序 quick(a,h,l) 快速排序法 h 分塊排序的上限 l 分塊排序的下限2) 程序說(shuō)明(結(jié)構(gòu),輸入輸出)這個(gè)程序整個(gè)流程比較自然,一脈相傳,即先輸入要排序的個(gè)數(shù),然后選擇要輸入的方式,將產(chǎn)生的數(shù)傳到數(shù)組中,然后依次地用冒泡子程序,直接插入的程序,快速排序的方法,依次排序,并將排好的數(shù)輸出,以及算法的時(shí)間復(fù)雜率。三、源程序及注釋?zhuān)?include"stdio.
3、h"#include"time.h"int m1=0;全局變量定義冒泡法循環(huán)的次數(shù)int m2=0; 全局變量定義直接插入法循環(huán)的次數(shù)int m3=0; 全局變量定義快速法循環(huán)的次數(shù) int suiji(int a,int n) ;隨機(jī)生成目的數(shù)函數(shù) int i,j,temp; srand(unsigned)time(NULL); srand播下一個(gè)種子 for(i=0;i<n;i+) ai=rand()%100; rand得到的數(shù)為0到100,依次傳到a中 printf(" %d",ai); jianpan(int a,int n) 鍵
4、盤(pán)輸入目的數(shù)函數(shù) int i,j,k,l; for(i=0;i<n;i+) 依次輸入目的數(shù) printf("input %dnumber:",i+1); scanf("%d",&ai); maopao(int a,int n) 冒泡法排序程序 int i,j,temp; for(i=0;i<n-1;i+) for(j=1;j<(n-i);j+) ;具體的排序過(guò)程 if(aj>aj-1) temp=aj; aj=aj-1; aj-1=temp; m1+; 計(jì)算循環(huán)次數(shù) printf(" Bubba the sort
5、ed nember:n"); for(i=0;i<n;i+) printf(" %d",ai); 將排好的數(shù)依次顯示 if(i+1)%5=0) printf("n"); 每輸出5個(gè)數(shù)換行 printf("time effective:%d",m1); 輸出冒泡法的時(shí)間效率m1 zhicha(int b,int n) 直接插入排序子程序 int i,j,temp; printf("nDirect :n"); for(i=1;i<n;i+) temp=bi; for(j=i;j>0&
6、&temp>bj-1;-j) 具體排序過(guò)程bj=bj-1;m2+;bj=temp; for(i=0;i<n;i+) printf(" %d",bi); 將排好的數(shù)顯示出來(lái) if(i+1)%5=0) printf("n"); printf("time effective:%dn",m2);輸出時(shí)間效率 quick(int c,int l,int h) 快速排序法 int temp; int i,j,k; i=l;j=h; if(l<h) temp=cl; while(i<j) while(i<j&a
7、mp;&cj<temp);具體排序過(guò)程 j-; m3+; if(i<j) ci+=cj; while(i<j&&ci>temp) i+; m3+; if(i<j) cj-=ci; ci=temp; quick(c,l,i-1);遞歸調(diào)用排序 quick(c,i+1,h);遞歸調(diào)用排序 main() int i,j,k,n; int a100,b100,c100; 定義三個(gè)數(shù)組來(lái)存放三種方法的數(shù)字 clrscr(); 清屏函數(shù) printf("input number:"); scanf("%d",&a
8、mp;n); 輸入要參與排序的數(shù)目 "); scanf("%d",&k); 選擇輸入的方式 if(k=1) k=1 則調(diào)用隨機(jī)函數(shù)調(diào)用 suiji(a,n); if(k=2) k=2 則調(diào)用鍵盤(pán)輸入函數(shù) jianpan(a,n); for(i=0;i<n;i+) bi=ai;ci=ai; maopao(a,n); 調(diào)用冒泡法程序 zhicha(b,n); 調(diào)用直接插入排序 printf("Quick sort:n"); quick(c,0,n-1); 調(diào)用快速排序法 for(i=0;i<n;i+) printf("
9、 %d",ci); if(i+1)%5=0) printf("n"); printf("time effective:%d",m3); getchar(); getchar();四、運(yùn)行輸出結(jié)果:五、調(diào)試和運(yùn)行程序過(guò)程中產(chǎn)生的問(wèn)題及采取的措施: 在寫(xiě)程序的過(guò)程思路比較清晰,遇到的困難主要是編程軟件的不兼容,或是某些c語(yǔ)言規(guī)則在一些軟件上為非法的,早先我用的一直用地是devC+,但是在用隨機(jī)生成數(shù)子函數(shù),一直提示有錯(cuò)誤,改正不了,最后只好用最原始的turbo C問(wèn)題解決了,發(fā)現(xiàn)最好用的還是tc啊,以后只用突出(我電腦一直裝不了vc+,不知道怎么回事),在具體編程中需要考慮的是函數(shù)形參和實(shí)參的格式,一定要一致。六、對(duì)算法的程序的討論、分析,改進(jìn)設(shè)想,其它經(jīng)驗(yàn)教訓(xùn): 這次程序中主要用三種排序方法:a。冒泡排序b直接插入排序c??焖倥判颉F渲忻芭菖判虻臅r(shí)間復(fù)雜度:O(n2) 空間復(fù)雜度:O(1)直接插入排序時(shí)間復(fù)雜度:O(n2) 空間復(fù)雜度:O(1)序法 最差時(shí)間分析平均時(shí)間
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年三四線城市房地產(chǎn)投資風(fēng)險(xiǎn)評(píng)估與市場(chǎng)前景分析報(bào)告
- 藥品進(jìn)口設(shè)備管理制度
- 藥師調(diào)劑授權(quán)管理制度
- 藥店在崗培訓(xùn)管理制度
- 藥店藥品衛(wèi)生管理制度
- 菜鳥(niǎo)貨物倉(cāng)儲(chǔ)管理制度
- 設(shè)備使用規(guī)范管理制度
- 設(shè)備器材安全管理制度
- 設(shè)備房除塵灰管理制度
- 設(shè)備管理中心管理制度
- [甘肅]最新甘肅省造價(jià)文件匯編(310頁(yè))
- 第三章混合策略納什均衡ppt課件
- 鋼框架結(jié)構(gòu)計(jì)算書(shū)畢業(yè)設(shè)計(jì)
- 粉塵濃度和分散度測(cè)定
- 壓力管道氬電聯(lián)焊作業(yè)指導(dǎo)書(shū)
- 一年級(jí)成長(zhǎng)檔案
- 儲(chǔ)罐電動(dòng)葫蘆倒裝提升方案
- 屋面防水質(zhì)量控制培訓(xùn)課件(共63頁(yè)).ppt
- DISCO240控制臺(tái)
- 報(bào)聯(lián)商企業(yè)的溝通方法課件
- 混凝土結(jié)構(gòu)及構(gòu)件實(shí)體檢測(cè)模擬題
評(píng)論
0/150
提交評(píng)論