版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、攀 枝 花 學(xué) 院 實(shí) 驗(yàn) 報(bào) 告實(shí)驗(yàn)課程:計(jì)算機(jī)算法實(shí)驗(yàn) 實(shí)驗(yàn)項(xiàng)目:比較多種不同排序算法 實(shí)驗(yàn)日期:2013.3.26系:數(shù)學(xué)與計(jì)算機(jī)學(xué)院 班級(jí):軟件工程 姓名:馮斌 學(xué)號(hào):4指導(dǎo)教師:銀星 成績(jī): 【實(shí)驗(yàn)?zāi)康模骸?. 掌握基本的排序算法2. 學(xué)習(xí)各種算法實(shí)現(xiàn)的優(yōu)劣3. 掌握vc+6.0環(huán)境下程序的編寫和調(diào)試【實(shí)驗(yàn)設(shè)備器材:】1. pc機(jī)一套2. java相應(yīng)編譯軟件【實(shí)驗(yàn)原理:】基于直接插入,折半插入排序,冒泡排序,快速排序的實(shí)現(xiàn),并記錄其實(shí)現(xiàn)所用比較次數(shù)?!緦?shí)驗(yàn)內(nèi)容:】1. 編寫相應(yīng)算法源程序2. 在vc+6.0環(huán)境下調(diào)試通過3. 通過程序排序所交換的次數(shù),比較各種算法的優(yōu)劣程序代碼如下
2、:#include #include #include #define Recordtype intvoid copy(Recordtype s, Recordtype d, int n);/*/* 直接插入法 */*/int cmpTforIs = 0;/記錄插入法的比較次數(shù)int ChgTforIs = 0;/記錄插入法的交換次數(shù)void InsertSort(Recordtype data, int n);/*/* 折半插入法 */*/int cmpTforBinarys = 0;/記錄冒泡的比較次數(shù)int ChgTforBinarys = 0;/記錄冒泡的交換次數(shù)void Binary
3、SearchInsertion(int numbers, const int n);/*/* 冒泡法 */*/int cmpTforBs = 0;/記錄冒泡的比較次數(shù)int ChgTforBs = 0;/記錄冒泡的交換次數(shù)void Bubsort(Recordtype *start, Recordtype *end);/*/* 快排 */*/int cmpTforQs = 0;/記錄快排的比較次數(shù)int ChgTforQs = 0;/記錄快排的交換次數(shù)int quickPass(int start, int last, Recordtype record);int quickSort(int
4、start, int last, Recordtype record);int main()Recordtype Data100;Recordtype D100;srand(time(NULL);printf(the rand 100 numbers are:n);for (int i=0; i100; i+)Di = rand()%1000;/便于觀察,每次產(chǎn)生1000內(nèi)的整數(shù)printf(%d , Di);printf(nnn);copy(D, Data, 100);BinarySearchInsertion(Data, 100);printf(折半插入法的比較次數(shù)為%d,交換次數(shù)為%dn
5、, cmpTforBinarys, ChgTforBinarys);copy(D, Data, 100); InsertSort(Data, 100); printf(直接插入法的比較次數(shù)為%d,交換次數(shù)為%dn, cmpTforIs, ChgTforIs);copy(D, Data, 100); Bubsort(&Data0, &Data99); printf(冒泡法的比較次數(shù)為%d,交換次數(shù)為%dn, cmpTforBs, ChgTforBs);copy(D, Data, 100);quickSort(0, 99, Data);printf(快排的比較次數(shù)為%d,交換次數(shù)為%dn, cmp
6、TforQs, ChgTforQs);printf(排序后的序列為n);/你可以這塊放在任意排序完畢的語句后面,檢查排序的正確性 for (i=0; i100; i+)printf(%d , Datai);return 0;void copy(Recordtype s, Recordtype d, int n)for (int i = 0; in; i+)di = si;void BinarySearchInsertion(int numbers, const int n) int middle=0; for(int i = 1; i n; i+) int low = 0 ; int high
7、 = i-1 ; int temp = numbersi ; while(low = high) cmpTforBinarys+;middle = (low + high) / 2 ; if(temp middle; k-) ChgTforBinarys+;numbersk = numbersk-1 ;ChgTforBinarys+;numberslow = temp ; void InsertSort(Recordtype data, int n)for (int i = 1; i0 & tempdataj-1; -j)ChgTforIs+;cmpTforIs+;dataj = dataj-
8、1;dataj =temp;void Bubsort(Recordtype *start, Recordtype *end)int num = end - start + 1;Recordtype temp;int i, j;Recordtype *a = start;for (i = 0; inum; i+)for (j = 0; j *(a+j)ChgTforBs+;temp = *(a+j-1);*(a+j-1) = *(a+j);*(a+j) = temp;int quickPass(int start, int last, Recordtype record)int s = star
9、t, l = last;int temp = records;while (s l)while (sl & temp = recordl )l-;cmpTforQs+;if (sl)records+ = recordl;ChgTforQs+;while (s= records)s+;cmpTforQs+;if (sl)recordl- = records;ChgTforQs+;records = temp;ChgTforQs+;return s;int quickSort(int start, int last, Recordtype record)int pos = 0;if (start
10、last)pos = quickPass(start, last, record);quickSort(start, pos-1, record);quickSort(pos+1, last, record);return 0;#include#include#define MAXSIZE 20#define EQ(a,b) (a)=(b)#define LT(a,b) (a)(b)#define LQ(a,b) (a)=(b)#define N 7typedef int KeyType;typedef int InfoType; /* 定義其它數(shù)據(jù)項(xiàng)的類型 */typedef struct
11、KeyType key; /* 關(guān)鍵字項(xiàng) */ InfoType otherinfo; /* 其它數(shù)據(jù)項(xiàng),具體類型在主程中定義 */ RedType; /* 記錄類型 */ typedef struct RedType rMAXSIZE+1; /* r0閑置或用作哨兵單元 */ int length; /* 順序表長(zhǎng)度 */ SqList; /* 順序表類型 */ void Merge(RedType SR,RedType TR,int i,int m,int n) /* 將有序的SRi.m和SRm+1.n歸并為有序的TRi.n 算法10.12 */ int j,k,l; for(j=m+1,
12、k=i;i=m&j=n;+k) /* 將SR中記錄由小到大地并入TR */ if LQ(SRi.key,SRj.key) TRk=SRi+; else TRk=SRj+; if(i=m) for(l=0;l=m-i;l+) TRk+l=SRi+l; /* 將剩余的SRi.m復(fù)制到TR */ if(j=n) for(l=0;l=n-j;l+) TRk+l=SRj+l; /* 將剩余的SRj.n復(fù)制到TR */ void MSort(RedType SR,RedType TR1,int s, int t) /* 將SRs.t歸并排序?yàn)門R1s.t。算法10.13 */ int m; RedType
13、 TR2MAXSIZE+1; if(s=t) TR1s=SRs; else m=(s+t)/2; /* 將SRs.t平分為SRs.m和SRm+1.t */ MSort(SR,TR2,s,m); /* 遞歸地將SRs.m歸并為有序的TR2s.m */ MSort(SR,TR2,m+1,t); /* 遞歸地將SRm+1.t歸并為有序的TR2m+1.t */ Merge(TR2,TR1,s,m,t); /* 將TR2s.m和TR2m+1.t歸并到TR1s.t */ void MergeSort(SqList *L) /* 對(duì)順序表L作歸并排序。算法10.14 */ MSort(*L).r,(*L).r,1,(*L).length); void print(SqList L) int i; for(i=1;i=L.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高職學(xué)校社會(huì)工作(學(xué)校社工技巧)試題及答案
- 2025年大學(xué)大三(生態(tài)學(xué))群落生態(tài)學(xué)基礎(chǔ)試題及解析
- 2025年高職化妝品檢驗(yàn)技術(shù)(化妝品檢驗(yàn)應(yīng)用)試題及答案
- 2025年大學(xué)護(hù)理學(xué)(老年護(hù)理基礎(chǔ))試題及答案
- 2025年中職(飼料加工技術(shù))飼料配方設(shè)計(jì)階段測(cè)試題及答案
- 2025年中職文化創(chuàng)意與策劃(文案寫作)試題及答案
- 2025年中職軟件工程(軟件測(cè)試自動(dòng)化框架)試題及答案
- 2025年大學(xué)植物科學(xué)與技術(shù)(農(nóng)產(chǎn)品質(zhì)量檢測(cè))試題及答案
- 2025年高職餐飲管理(餐飲質(zhì)量管理)試題及答案
- 2025年高職(建筑裝飾工程技術(shù))軟裝設(shè)計(jì)測(cè)試題及答案
- 2024年抖音影視作品宣傳合同
- 詳細(xì)抵押合同范本
- 《國(guó)際中文教材評(píng)價(jià)標(biāo)準(zhǔn)》
- 床-輪椅轉(zhuǎn)移操作質(zhì)量及評(píng)分標(biāo)準(zhǔn)
- DL-T976-2017帶電作業(yè)工具、裝置和設(shè)備預(yù)防性試驗(yàn)規(guī)程
- DB32T3916-2020建筑地基基礎(chǔ)檢測(cè)規(guī)程
- 2024年青海海南州消防救援支隊(duì)消防文員招聘筆試參考題庫附帶答案詳解
- 2022版《義務(wù)教育教學(xué)新課程標(biāo)準(zhǔn)》解讀課件
- 期末水平綜合練習(xí)(試題)新思維小學(xué)英語一年級(jí)上冊(cè)
- 人教A版高中數(shù)學(xué)選擇性必修第二冊(cè)全冊(cè)各章節(jié)課時(shí)練習(xí)題含答案解析(第四章數(shù)列、第五章一元函數(shù)的導(dǎo)數(shù)及其應(yīng)用)
- 六年級(jí)下冊(cè)小升初全復(fù)習(xí)-第12講 工程問題-北師大 (含答案)
評(píng)論
0/150
提交評(píng)論