![數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)八:快速排序_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a6aeb7c4-edec-4b1e-aecc-06adb5f5c8a7/a6aeb7c4-edec-4b1e-aecc-06adb5f5c8a71.gif)
![數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)八:快速排序_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a6aeb7c4-edec-4b1e-aecc-06adb5f5c8a7/a6aeb7c4-edec-4b1e-aecc-06adb5f5c8a72.gif)
![數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)八:快速排序_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a6aeb7c4-edec-4b1e-aecc-06adb5f5c8a7/a6aeb7c4-edec-4b1e-aecc-06adb5f5c8a73.gif)
![數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)八:快速排序_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a6aeb7c4-edec-4b1e-aecc-06adb5f5c8a7/a6aeb7c4-edec-4b1e-aecc-06adb5f5c8a74.gif)
![數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)八:快速排序_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/a6aeb7c4-edec-4b1e-aecc-06adb5f5c8a7/a6aeb7c4-edec-4b1e-aecc-06adb5f5c8a75.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、HUNAN UNIVERSITY課程實(shí)驗(yàn)報(bào)告題 目: 快速排序 學(xué)生姓名 學(xué)生學(xué)號(hào) 專業(yè)班級(jí) 指導(dǎo)老師 李 曉 鴻 完 成 日 期 2 0 1 5年 1月 7日 一、需求分析1程序的功能由用戶輸入任務(wù)件數(shù)和任務(wù)時(shí)間,使用快速排序,輸出使得所有任務(wù)等待時(shí)間最小的序列。2.輸入的形式本程序由用戶輸入任務(wù)總數(shù)以及每個(gè)任務(wù)所花時(shí)間,中間用空格或換行隔開(kāi),任務(wù)總數(shù)必須為正整數(shù)。請(qǐng)輸入任務(wù)總數(shù):請(qǐng)輸入各個(gè)任務(wù)所花時(shí)間:3.輸出形式在對(duì)這些任務(wù)所花時(shí)間進(jìn)行快速排序后,將這些數(shù)據(jù)從小到大輸出任務(wù)時(shí)間。任務(wù)所花時(shí)間的排序如下:4.測(cè)試數(shù)據(jù)1.請(qǐng)輸入任務(wù)總數(shù):9請(qǐng)輸入各個(gè)任務(wù)所花時(shí)間:5 3 4 2 6 1 5
2、7 3任務(wù)所花時(shí)間從小到大的排序如下:1 2 3 3 4 5 5 6 7 2. 請(qǐng)輸入任務(wù)總數(shù): 10請(qǐng)輸入各個(gè)任務(wù)所花時(shí)間:6 5 1 2 3 5 4 8 6 1 任務(wù)所花時(shí)間從小到大的排序如下:1 1 2 3 4 5 5 6 6 83. 請(qǐng)輸入任務(wù)總數(shù):6請(qǐng)輸入各個(gè)任務(wù)所花時(shí)間:10 10 19 45 23 5 任務(wù)所花時(shí)間從小到大的排序如下:5 10 10 19 23 454. 請(qǐng)輸入任務(wù)總數(shù): 8請(qǐng)輸入各個(gè)任務(wù)所花時(shí)間:8 7 6 5 4 3 2 1任務(wù)所花時(shí)間從小到大的排序如下: 1 2 3 4 5 6 7 85. 請(qǐng)輸入任務(wù)總數(shù): 10請(qǐng)輸入各個(gè)任務(wù)所花時(shí)間:2 4 6 8 1 0
3、 12 14 26 15任務(wù)所花時(shí)間從小到大的排序如下:0 1 2 4 6 8 12 14 15 26二、概要設(shè)計(jì)1.抽象數(shù)據(jù)類型將每一個(gè)元素儲(chǔ)存在一個(gè)有序并且有限的序列中,每一個(gè)元素都有一個(gè)自己的位置,也都有一個(gè)數(shù)據(jù)類型,所以使用線性表來(lái)儲(chǔ)存各個(gè)任務(wù)所花的時(shí)間。2. ADTADT alist數(shù)據(jù)對(duì)象:定義線性表的最大儲(chǔ)存元素maxsize; 當(dāng)前儲(chǔ)存元素?cái)?shù)listsize;數(shù)據(jù)關(guān)系:若listsize=0,則線性表沒(méi)有元素,為空;基本操作:alist(int n)/構(gòu)造函數(shù) alist()/析構(gòu)函數(shù) bool append(int a)/增加元素3.算法的基本思想 設(shè)要排序的線性表中元素是A
4、0AN-1,首先通過(guò)時(shí)間函數(shù)余作為關(guān)鍵數(shù)據(jù)piot,然后將所有比它小的數(shù)都放到它前面,所有比它大的數(shù)都放到它后面,通過(guò)前后指針的移動(dòng),實(shí)現(xiàn)快速排序。再將piot值左右兩邊的線性表進(jìn)行快速排序,直到需要快速排序的線性表只有1個(gè)元素。4.程序基本流程程序分為三個(gè)模塊:輸入模塊:由用戶讀入任務(wù)總數(shù)n以及各個(gè)任務(wù)所花時(shí)間;排序模塊:對(duì)這些時(shí)間進(jìn)行快速排序;輸出模塊:輸出排序后的序列。三詳細(xì)設(shè)計(jì)1.物理數(shù)據(jù)類型由于線性表長(zhǎng)度已知,并且進(jìn)行大量的交換操作,所以使用順序表來(lái)實(shí)現(xiàn)。順序表的偽代碼class alistpublic:int maxsize;int listsize;int* listarry;a
5、list(int n)maxsize = n;listsize = 0;listarry = new intmaxsize;alist()deletelistarry;bool append(int a)if (listsize = maxsize)return false;listarrylistsize+ = a;return true;2. 詳細(xì)設(shè)計(jì)獲取piot值partationquicksort獲取piot值:獲取隨機(jī)數(shù),通過(guò)隨機(jī)數(shù)獲得piot值。為了防止隨機(jī)數(shù)大于所有數(shù),對(duì)隨機(jī)數(shù)就行求余,對(duì)求余后的值加1(防止左邊界為0,右邊界為1的情況,(r+l)/2=0).int findpi
6、ot(int a, int b)srand(time(0);int n = rand() % (a+b)/2+1);return n;partation(劃分):開(kāi)始參數(shù)l.r緊挨要分割子線性表的實(shí)際邊界。每一輪執(zhí)行外層do循環(huán)時(shí),l和r都將向的線性表中間移動(dòng),若在移動(dòng)過(guò)程中,l遇到比piot值大的值就停止,l遇到比piot小的就停止,交換l和r所對(duì)應(yīng)的值,再次移動(dòng),直到它們交叉為止。int partition(int l, int r, int &pivot)dowhile (listarry+l pivot);swap( l, r); while (l r);swap( l, r);ret
7、urn l; quicksort(快速排序):通過(guò)遞歸,獲取piot值后,對(duì)線性表從位置i到位置j進(jìn)行一次劃分,通過(guò)k值獲得排序后poit值所在位置,對(duì)起始位置i到k和k+1到末尾j再次快速排序。void qsort( int i, int j)if (j = i)return;int pivotindex = findpiot( i, j);int k = partition(i - 1, j, listarryj);swap( k, j);qsort( i, k - 1);qsort( k + 1, j);3 算法的時(shí)空分析及改進(jìn)設(shè)想 最好情況O(nlogn),最差情況(n2)4. 輸入和
8、輸出的格式輸入: 輸入任務(wù)數(shù)量,任務(wù)時(shí)間:請(qǐng)輸入任務(wù)數(shù): .請(qǐng)輸入任務(wù)時(shí)間: .cout n;alist a(n);cout 輸入任務(wù)時(shí)間n;for (int i = 0; i temp;a.append(temp);輸出:任務(wù)所花時(shí)間排序如下:.cout 任務(wù)所花時(shí)間排序如下n;for (int i = 0; i n; i+)cout a.listarryi ;cout endl;4 測(cè)試結(jié)果測(cè)試1測(cè)試2測(cè)試3測(cè)試4測(cè)試55 試驗(yàn)心得書上快速排序十分詳細(xì),用抽象數(shù)據(jù)類型做也就多了定義類。6 附錄#includeiostream#includetime.husing namespace std
9、;class alistpublic:int maxsize;int listsize;int* listarry;alist(int n)maxsize = n;listsize = 0;listarry = new intmaxsize;alist()deletelistarry;bool append(int a)if (listsize = maxsize)return false;listarrylistsize+ = a;return true;int findpiot(int a, int b)srand(time(0);int n = rand() % (a+b)/2);ret
10、urn n;int partition(int l, int r, int &pivot)dowhile (listarry+l pivot);swap( l, r); while (l r);swap( l, r);return l;void qsort( int i, int j)if (j = i)return;int pivotindex = findpiot( i, j);int k = partition(i - 1, j, listarryj);swap( k, j);qsort( i, k - 1);qsort( k + 1, j);void swap( int a, int b)int temp;temp = listarrya;listarrya = listarryb;listarryb = temp;int main()int n,temp;cout n;alist a(n);cout 輸入任
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度文化旅游產(chǎn)業(yè)股權(quán)投資與品牌運(yùn)營(yíng)合同
- 2025年度股東間綠色環(huán)保項(xiàng)目借款合同規(guī)范
- 2025年度互聯(lián)網(wǎng)數(shù)據(jù)中心設(shè)備采購(gòu)與服務(wù)合同樣本
- 漯河2024年河南漯河市第三人民醫(yī)院(漯河市婦幼保健院)招聘9人筆試歷年參考題庫(kù)附帶答案詳解
- 深圳廣東深圳市第一職業(yè)技術(shù)學(xué)校招聘購(gòu)買教育服務(wù)教師筆試歷年參考題庫(kù)附帶答案詳解
- 漢中2025年陜西漢中市中心醫(yī)院招聘19人筆試歷年參考題庫(kù)附帶答案詳解
- 昆明2025年云南昆明市盤龍區(qū)婦幼保健院招聘編外口腔醫(yī)師筆試歷年參考題庫(kù)附帶答案詳解
- 廣西2025年廣西安全工程職業(yè)技術(shù)學(xué)院招聘10人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年縮水鋼角尺項(xiàng)目可行性研究報(bào)告
- 2025年皮帶傳動(dòng)手控項(xiàng)目可行性研究報(bào)告
- 2025年廣東省春季高考英語(yǔ)情景交際題專項(xiàng)練習(xí)(含答案)
- 浙江省湖州是吳興區(qū)2024年中考語(yǔ)文二模試卷附參考答案
- 風(fēng)電設(shè)備安裝施工專項(xiàng)安全措施
- IQC培訓(xùn)課件教學(xué)課件
- 關(guān)于成立合同審核小組的通知
- 教育部《中小學(xué)校園食品安全和膳食經(jīng)費(fèi)管理工作指引》知識(shí)培訓(xùn)
- 部編人教版語(yǔ)文小學(xué)六年級(jí)下冊(cè)第四單元主講教材解讀(集體備課)
- 節(jié)后復(fù)工安全教育培訓(xùn)內(nèi)容【5篇】
- EN779-2012一般通風(fēng)過(guò)濾器——過(guò)濾性能測(cè)定(中文版)
- 國(guó)際形式發(fā)票模板
- 跟單人員績(jī)效考核表
評(píng)論
0/150
提交評(píng)論