![算法設(shè)計實(shí)驗(yàn)報告一_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/26/f6d5278c-3a8b-449c-916d-09e8154404d5/f6d5278c-3a8b-449c-916d-09e8154404d51.gif)
![算法設(shè)計實(shí)驗(yàn)報告一_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/26/f6d5278c-3a8b-449c-916d-09e8154404d5/f6d5278c-3a8b-449c-916d-09e8154404d52.gif)
![算法設(shè)計實(shí)驗(yàn)報告一_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/26/f6d5278c-3a8b-449c-916d-09e8154404d5/f6d5278c-3a8b-449c-916d-09e8154404d53.gif)
![算法設(shè)計實(shí)驗(yàn)報告一_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/26/f6d5278c-3a8b-449c-916d-09e8154404d5/f6d5278c-3a8b-449c-916d-09e8154404d54.gif)
![算法設(shè)計實(shí)驗(yàn)報告一_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/26/f6d5278c-3a8b-449c-916d-09e8154404d5/f6d5278c-3a8b-449c-916d-09e8154404d55.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、計算機(jī)算法設(shè)計與分析實(shí) 驗(yàn) 報 告實(shí)驗(yàn)名稱:排序算法效率比較實(shí)驗(yàn)地點(diǎn):所使用的開發(fā)工具及環(huán)境:1、 實(shí)驗(yàn)?zāi)康模罕容^至少4種排序算法的執(zhí)行效率。已學(xué)過的算法:起泡排序、選擇排序、插入排序、shell排序,歸并排序、快速排序等。二、實(shí)驗(yàn)內(nèi)容:1、從中選擇至少4中排序算法,寫成獨(dú)立的函數(shù)進(jìn)行調(diào)用。2、參與排序的數(shù)據(jù)不少于10000個,要求用數(shù)據(jù)文件存儲隨機(jī)產(chǎn)生的數(shù)據(jù)。3、要求在main()函數(shù)中調(diào)用以上函數(shù),并輸出各排序算法所用時間。3、 基本思想、原理和算法描述: 本次實(shí)驗(yàn)要求寫出四種算法,來比較它們運(yùn)行的時間。冒泡排序:總的時間復(fù)雜度為O(n).基本思想:首先將第一個記錄的關(guān)鍵字和第二個記錄的關(guān)
2、鍵字進(jìn)行比較,若為逆序,則將兩個記錄交換,然后比較第二個記錄和第三個記錄的關(guān)鍵字。依此類推,直到第n-1和第n個的關(guān)鍵字進(jìn)行比較為止。算法描述:void BubbleSort(int r,int length) /冒泡排序int i,j,temp;for(j=length;j>0;j-)for(i=0;i<j-1;i+)if(ri>ri+1)temp=ri;ri=ri+1;ri+1=temp; 簡單選擇排序:總的時間復(fù)雜度為O(n2)基本思想:通過n-i次關(guān)鍵字的比較,從n-i+1個記錄中選取出關(guān)鍵字最小的記錄并和第i個記錄交換。算法描述:void SelectSort(in
3、t r,int length) /簡單選擇排序int i,j,k;int x; for (i=1;i<=length-1;+i)k=i;for(j=i+1;j<=length;+j)if(rj<rk)k=j;if( k!=i)x= ri;ri=rk;rk=x;插入排序:總的時間復(fù)雜度為:O(n2)算法描述:void InsertSort(int r,int length) /插入排序int i,j;for (i=0;i<=length;i+)r0=ri;j=i-1;while(r0<rj)rj+1=rj;j=j-1;rj+1=r0;快速排序:總的時間復(fù)雜度為O(n
4、log2n)基本思想:通過一趟排序?qū)⒋庞涗浄指畛瑟?dú)立的兩部分,其中一部分的關(guān)鍵字均比另一部分的關(guān)鍵字小,則可分別對這兩部分的記錄繼續(xù)進(jìn)行排序,直到整個序列有序。算法描述:void QuickSort(int A,int low,int r)/快速排序if(low<r)int high = Partition(A,low,r); QuickSort(A,low,high-1);QuickSort(A,high+1,r);4、 源程序清單:#include<stdio.h>#include<stdlib.h>#include<time.h>#includ
5、e<windows.h>#define MAX 10000void BubbleSort(int r,int length) /冒泡排序int i,j,temp;for(j=length;j>0;j-)for(i=0;i<j-1;i+)if(ri>ri+1)temp=ri;ri=ri+1;ri+1=temp; void SelectSort(int r,int length) /簡單選擇排序int i,j,k;int x;for (i=1;i<=length-1;+i)k=i;for(j=i+1;j<=length;+j)if(rj<rk)k=j
6、;if( k!=i)x= ri;ri=rk;rk=x; void InsertSort(int r,int length) /插入排序int i,j;for (i=0;i<=length;i+)r0=ri;j=i-1;while(r0<rj)rj+1=rj;j=j-1;rj+1=r0;int Partition(int A,int low,int high)int i,j,x,t;x = Ahigh;i = low-1;for (j = low;j<=high;j+)if(Aj < x)i+;t = Aj;Aj = Ai;Ai = t; Ahigh = Ai+1;Ai+
7、1 = x; return i+1;void QuickSort(int A,int low,int r)/快速排序if(low<r)int high = Partition(A,low,r); QuickSort(A,low,high-1);QuickSort(A,high+1,r);void main()long iStart,iStop,runtime;int numMAX, aMAX;int i,j;iStart=GetTickCount();srand(unsigned)time(NULL);for(i=0;i<MAX;i+)numi=rand();iStop=GetTi
8、ckCount();runtime=iStop-iStart;printf("生成%d個隨機(jī)數(shù)用了%ldmsn",MAX, runtime);printf("-n");for(i=0;i<MAX;i+)ai=numi;iStart=GetTickCount();BubbleSort(a,MAX);iStop=GetTickCount();runtime=iStop-iStart;printf("使用冒泡排序用了%ldmsn",runtime);for(i=0;i<MAX;i+)ai=numi;iStart=GetTickC
9、ount();SelectSort(a,MAX);iStop=GetTickCount();runtime=iStop-iStart;printf("使用簡單選擇排序用了%ldmsn",runtime);for(i=0;i<MAX;i+)ai=numi;iStart=GetTickCount();InsertSort(a,MAX);iStop=GetTickCount();runtime=iStop-iStart;printf("使用插入排序用了%ldmsn",runtime);for(i=0;i<MAX;i+)ai=numi;iStart=GetTickCount();QuickSort(a,1,MAX);iStop=GetTickCount();runtime=iStop-iStart;printf("使用快速排序用了%ldmsn",runtime); 5、 程序運(yùn)行結(jié)果(包括上機(jī)調(diào)試的情況、調(diào)試所遇到的問題是如何解決的,并對調(diào)試過程中的問題進(jìn)行分析,對執(zhí)行結(jié)果進(jìn)行分析。): 最主要的就是怎樣產(chǎn)生不同的隨機(jī)數(shù),并且還要記錄下排序前后的時間。最后就是在快速排序的時候有點(diǎn)問題。不過經(jīng)過查資料和多次調(diào)試,問題基本得到解決六、實(shí)驗(yàn)總結(jié): 在本次實(shí)驗(yàn)中要求
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年院線經(jīng)營項(xiàng)目規(guī)劃申請報告模板
- 2025年防結(jié)皮劑項(xiàng)目提案報告模板
- 2025年會議場地租賃合同書模板
- 2025年勞務(wù)派遣人員安全生產(chǎn)責(zé)任協(xié)議
- 2025年產(chǎn)品銷售合同范本官方
- 2025年鐵軌建設(shè)項(xiàng)目立項(xiàng)申請報告模范
- 2025年節(jié)日禮品項(xiàng)目規(guī)劃申請報告模板
- 2025年規(guī)劃管理服務(wù)項(xiàng)目申請報告
- 2025年臨時聘用人員安全生產(chǎn)協(xié)議
- 2025年中信銀行信用卡還款合同
- 常見食物的嘌呤含量表匯總
- 人教版數(shù)學(xué)八年級下冊同步練習(xí)(含答案)
- SB/T 10752-2012馬鈴薯雪花全粉
- 2023年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招(英語)試題庫含答案解析
- 濕型砂中煤粉作用及檢測全解析
- 積累運(yùn)用表示動作的詞語課件
- 機(jī)動車登記證書英文證書模板
- 第8課《山山水水》教學(xué)設(shè)計(新人教版小學(xué)美術(shù)六年級上冊)
- T∕ZSQX 008-2020 建設(shè)工程全過程質(zhì)量行為導(dǎo)則
- 質(zhì)量管理體系基礎(chǔ)知識培訓(xùn)-2016
- 甲醇催化劑說明書
評論
0/150
提交評論