![排序算法比較程序_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-12/2/524fb213-4c6e-433d-9df4-62c0efff1b26/524fb213-4c6e-433d-9df4-62c0efff1b261.gif)
![排序算法比較程序_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-12/2/524fb213-4c6e-433d-9df4-62c0efff1b26/524fb213-4c6e-433d-9df4-62c0efff1b262.gif)
![排序算法比較程序_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-12/2/524fb213-4c6e-433d-9df4-62c0efff1b26/524fb213-4c6e-433d-9df4-62c0efff1b263.gif)
![排序算法比較程序_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-12/2/524fb213-4c6e-433d-9df4-62c0efff1b26/524fb213-4c6e-433d-9df4-62c0efff1b264.gif)
![排序算法比較程序_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-12/2/524fb213-4c6e-433d-9df4-62c0efff1b26/524fb213-4c6e-433d-9df4-62c0efff1b265.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1 #include #include #include #include #include #define max 100000000 using namespace std; void print(long r,long n) for(int i=1;i=n;i+) coutsetw(4)1) long lastexchangeindex=1;/ 表示已經(jīng)有序for(long j=1;ji;j+) if(rj+1rj) long t=rj; rj=rj+1; rj+1=t; bt+; lastexchangeindex=j;/記下進(jìn)行的位置 i=lastexchangeindex;/本趟進(jìn)
2、行過(guò)交換的最后一個(gè)記錄的位置cout第y 趟:; y+; for(long x=1;x=i;x+) coutsetw(4)rx; coutsetw(3)ri+1; for(x=i+2;x=n;x+) coutsetw(4)rx; cout; coutendl; 2 return bt; /- /選擇排序/- /static long st=0; long selectminkey(long r,long i,long n)/在 ri.r.length 中選擇關(guān)鍵字最小的記錄 long temp=i;/記錄最小的元素值的位置for(int j=i;jrj) temp=j; /st+; retur
3、n temp; long selectsort(long r,long n) long j,i,t; long y=1; int st=0; for( i=1;in;i+) j = selectminkey(r,i,n);/ 在 l.ri.l.length 中選擇關(guān)鍵字最小的記錄if (i!=j) / 與第 i 個(gè)記錄交換 t=ri; ri=rj; rj=t; st+; cout第y 趟: ; y+; for(long x=1;x=i;x+) coutsetw(4)rx; coutsetw(3)ri+1; for(x=i+2;x=n;x+) coutsetw(4)rx; cout; 3 /pr
4、int(r,n); coutendl; return st; /- /直接插入排序/- long insertsort(long r, long n) long y=1; long it=0,j; for(long i=2;i=n;+i) if(riri-1) r0=ri;/ 復(fù)制為哨兵it=it+1; for( j=i-1;r0rj;-j) rj+1=rj;/ 記錄后移it=it+1; rj+1=r0;/ 插入到正確位置it=it+1; cout第y 趟: ; y+; coutsetw(4)r1; for(long x=2;x=i;x+) coutsetw(4)rx; cout; for(x
5、=i+1;x=n;x+) coutsetw(4)rx; coutendl; return it; /- / 快速排序/- static long qt=0; int partition (long r, long low, long high,long n) 4 r0 =rlow; long pivotkey = rlow; / 樞軸qt=qt+2; while (lowhigh) while(low=pivotkey)/ 從右向左搜索- high; rlow = rhigh; qt=qt+1; while (lowhigh & rlow=pivotkey)/ 從左向右搜索+ low;
6、 rhigh = rlow; qt=qt+1; rlow =r0; qt=qt+1; return low; / partition void quicksort (long r, int low, int high,long n,long y)/ 對(duì)記錄序列l(wèi).rlow.high 進(jìn)行快速排序 if (low high) / 長(zhǎng)度大于 1 long pivotloc = partition(r,low,high,n);/ 對(duì) l.rlow.high 進(jìn)行一次劃分qt=qt+1; cout第y 趟:; y+; print(r,pivotloc-1); coutsetw(2)rpivotloc;
7、 cout; for(long x=pivotloc+1;x=n;x+) coutsetw(5)rx; coutendl; quicksort(r, low, pivotloc-1,n,y); / 對(duì)低子序列遞歸排序quicksort(r, pivotloc+1, high,n,y); / 對(duì)高子序列遞歸排序 / qsort void quicksort(long r,long n) 5 long y=1; quicksort(r,1,n,n,y); /- /操作選擇函數(shù)/- void operate(long a, long n) void main(); long * r = new lo
8、ng n; time_t start, end;/定義兩個(gè)變量double time;/排序時(shí)間long degree;/排序次數(shù)char ch; cout ch; switch(ch) case 1: coutn; coutt=您選擇的是冒泡排序 =n; for(int i = 1; i =n; i +)/ 將隨機(jī)數(shù)付給 ri ri = ai; start=(double)clock(); degree = bubblesort(r, n); end=(double)clock(); time = (double)(end-start)/clk_tck; /print(r,n); cout
9、n; cout 冒泡排序所用時(shí)間: t time n; cout 冒泡排序交換次數(shù): t degree n; coutn; operate(a, n); break; case 2: coutn; coutt=您選擇的是選擇排序 =n; for(int i = 1; i = n; i +) ri = ai; 6 start=(double)clock(); degree = selectsort(r, n); end=(double)clock(); time = (double)(end-start)/clk_tck; /print(r,n); coutn; cout 選擇排序所用時(shí)間: t
10、 time n; cout 選擇排序交換次數(shù): t degree n; cout n; operate(a, n); break; case 3: coutn; coutt=您選擇的是直接插入排序=n; for(int i=1; i=n; i +) ri = ai; start=(double)clock(); degree = insertsort(r, n); end=(double)clock(); time = (double)(end-start)/clk_tck; /print(r,n); coutn; cout 直接插入排序所用時(shí)間: time n; cout 直接插入排序交換次
11、數(shù): degree n; cout n; operate(a, n); break; case 4: coutn; coutt=您選擇的是快速排序 =n; for(int i=1; i=n; i +) ri = ai; start=(double)clock(); quicksort(r, n); end=(double)clock(); 7 time = (double)(end-start)/clk_tck; coutn; cout 快速排序所用時(shí)間: t time n; cout 快速排序交換次數(shù): t qt n; cout n; operate(a, n); break; case a
12、: main(); break; default: cout 輸入錯(cuò)誤,請(qǐng)選擇正確的操作! n; operate(a, n); break; case 0: cout您已選擇退出程序,謝謝使用n; break; /- /導(dǎo)航菜單函數(shù)/- void daohang() coutn* 排序算法比較*endl; cout*endl; cout= 1 - 冒泡排序=endl; cout= 2 - 選擇排序=endl; cout= 3 - 直接插入排序=endl; cout= 4 - 快速排序=endl; cout= 0 - 退出程序=endl; cout= a - 改變隨機(jī)數(shù)的個(gè)數(shù)=endl; cou
13、t*endl; /- 8 /隨機(jī)輸入函數(shù)/- void rand() cout n 請(qǐng)輸入要產(chǎn)生的隨機(jī)數(shù)的個(gè)數(shù)(0=n=100000000) : n; cout endl; long *a = new long n; srand(unsigned long)time(null);/產(chǎn)生一個(gè)以當(dāng)前時(shí)間開(kāi)始的隨機(jī)種子for (long i=1; i=n; i+) ai = rand() % n;/n 為最大值 ,其隨機(jī)域?yàn)?0n-1 daohang(); print(a,n); operate(a, n); /- /手動(dòng)輸入函數(shù)/- void handinput() cout請(qǐng)輸入數(shù)據(jù)個(gè)數(shù): endl; int n; coutn; cout endl; long *a = new long
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代學(xué)生餐廳的照明與色彩搭配藝術(shù)
- 深度解讀網(wǎng)絡(luò)輿情的來(lái)源與影響研究報(bào)告解讀分享
- 現(xiàn)代金融行業(yè)中的移動(dòng)支付技術(shù)與教育普及
- 快手國(guó)慶節(jié)的活動(dòng)方案
- 國(guó)慶假期活動(dòng)方案
- 國(guó)慶節(jié)酒店漲價(jià)活動(dòng)方案
- 2、3、4的乘法口訣(說(shuō)課稿)-2024-2025學(xué)年二年級(jí)上冊(cè)數(shù)學(xué)人教版
- Unit1 There is a horse in this photo(說(shuō)課稿)-2024-2025學(xué)年外研版(三起)四年級(jí)上冊(cè)001
- 17《他們那時(shí)候多有趣啊》(說(shuō)課稿)-2023-2024學(xué)年統(tǒng)編版語(yǔ)文六年級(jí)下冊(cè)
- 13 我能行(說(shuō)課稿)-統(tǒng)編版(五四制)道德與法治二年級(jí)下冊(cè)
- 2025年廣州中醫(yī)藥大學(xué)順德醫(yī)院(佛山市順德區(qū)中醫(yī)院)招考聘用高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年華僑港澳臺(tái)學(xué)生聯(lián)招考試英語(yǔ)試卷試題(含答案詳解)
- 2025-2030年中國(guó)美容院行業(yè)營(yíng)銷(xiāo)創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2024-2025學(xué)年北京石景山區(qū)九年級(jí)初三(上)期末語(yǔ)文試卷(含答案)
- 第一章 整式的乘除 單元測(cè)試(含答案) 2024-2025學(xué)年北師大版數(shù)學(xué)七年級(jí)下冊(cè)
- 2024人教版英語(yǔ)七年級(jí)下冊(cè)《Unit 3 Keep Fit How do we keep fit》大單元整體教學(xué)設(shè)計(jì)2022課標(biāo)
- 藥品流通監(jiān)管培訓(xùn)
- JD37-009-2024 山東省存量更新片區(qū)城市設(shè)計(jì)編制技術(shù)導(dǎo)則
- 中國(guó)高血壓防治指南(2024年修訂版)
- 北京市海淀區(qū)重點(diǎn)中學(xué)2025屆高考數(shù)學(xué)押題試卷含解析
- 2024EPC施工總包合同范本
評(píng)論
0/150
提交評(píng)論