版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、算法設(shè)計與分析,譚守標(biāo) 安徽大學(xué) 電子學(xué)院 2007.9,第六章 快速排序,快速排序算法 快速排序的隨機化版本 程序演示及說明 算法性能分析(三種情況),問題:,1、什么是分治法? 2、什么是排序? 3、用分治法解決排序問題的思想是什么?,1.算法的提出:由C.A.R.Hoare提出。 2.定義:快速排序(quick sort)又稱分劃交換排序。,一、快速排序算法的基本概念,3.其解決排序問題的基本思路:使用分治法。 基本步驟: a.分解:數(shù)組Ap.r被劃分為兩個非空子數(shù)組Ap.q和Aq+1.r,使得Ap.q的每一個元素都小于等于Aq+1.r的元素。 b.解決:通過遞歸調(diào)用快速排序?qū)ψ訑?shù)組Ap
2、.q和Aq+1.r進行排序。 c.合并:快速排序無需合并操作。,快速排序算法: QUICKSORT(A,p,r) 1 if pr 2 then q PARTITION(A,p,r) 3 QUICKSORT(A,p,q) 4 QUICKSORT(A,q+1,r),算法描述,二、快速排序的分解、解決過程,1. 分解:調(diào)用PARTITION對數(shù)組Ap.r進行劃分。 分解方法:在待排序的數(shù)組Ap.r中選擇一個元素作為分劃元素,也稱為主元(最簡單的做法是選擇數(shù)組的第一個元素為主元)。 經(jīng)過一趟劃分操作將數(shù)組重新排列,將小于主元的元素放在原數(shù)組的底部區(qū)域,把大于主元的元素放在原數(shù)組的頂部區(qū)域。 示意圖:
3、主元 PARTITION,底部區(qū)域,頂部區(qū)域,2.解決:通過遞歸調(diào)用快速排序?qū)ψ訑?shù)組Ap.q和Aq+1.r排序,直到劃分得到的子數(shù)組中只有一個元素時,遞歸調(diào)用結(jié)束。 3.合并:快速排序經(jīng)過一趟劃分操作將數(shù)組分解成兩個子數(shù)組,且位于底部區(qū)域的元素均不大于主元,位于頂部區(qū)域的元素均不小于主元,所以,一旦兩個子數(shù)組已經(jīng)完成分別排序,整個數(shù)組自然成為有序序列。,PARTITION實例:,i,j,i,i,j,j,i,j,j,i,(a),(b),(c),(d),(e),Ap.r,Ap.q,Aq+1.r,一次劃分結(jié)束,主元,return,PARTITION(A,p,r) 1 x Ap 2 i p-1 3 j
4、 r+1 4 while TRUE /三次循環(huán)就把前一個數(shù)組搞定了 5 do repeat j j-1 6 until Ajx /后面小于主元 7 repeat i i+1 8 until Aix /前面的大于主元 9 if ij 10 then exchange Ai Aj 11 else return j,劃分的正確性,a.下標(biāo)i和j不會指向數(shù)組A中區(qū)間p.r以外的元素。 b.當(dāng)PARTITION結(jié)束時,下標(biāo)j不等于r。 c.當(dāng)PARTITION結(jié)束時,Ap.j中的每個元素都小于等于Aj+1.r中的每個元素。,性能分析,最壞情況劃分: T(n)=T(n-1)+(n),最佳情況劃分: T(n
5、)=2T(n/2)+(n)=(nlgn),常數(shù)比例劃分: T(n)=T(an)+T(1-a)n)+(n)=(nlgn),平均情況劃分: 直覺:(nlgn) 差的劃分可以吸收到好的劃分中。,三、快速排序的隨機化版本,1. 隨機化版本的提出 2.在快速排序中使用隨機選擇策略 在快速排序算法的每一步中,當(dāng)數(shù)組還沒有被劃分時,可將元素Ap與Ap.r中隨機選出的一個元素交換后再執(zhí)行PARTITION。 3.使用隨機化版本的優(yōu)點,隨機化版本的算法,RANDOMIZED-PARTITION 1 i RANDOM(p,r) 2 exchange Ap Ai 3 return PARTITION(p,q,r) RANDOMIZED-QUICKSORT(A,p,r) 1 if pr 2 then q RANDOMIZED-PARTITION(A,p,r) 3 RANDOMIZED-QUICKSORT(A,p,q) 4 RANDOMIZED- QUICKSORT(A,q+1,r),四、快速排序分析,(n-1) =,n -2(n-1),最壞情況分析,平均情況分析 兩個假設(shè): (1)假設(shè)所有輸入數(shù)據(jù)均不同; (2)假定每個排列出現(xiàn)是等概率的;,關(guā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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 墨鏡促銷活動策劃方案(3篇)
- 平安融易江漢開發(fā)區(qū)分公司公開招聘客服專員10人備考考試題庫及答案解析
- 2026廣西柳州市柳江區(qū)禁毒委員會辦公室招聘編外人員1人備考考試試題及答案解析
- 2026年上半年玉溪師范學(xué)院招聘人員(6人)參考考試題庫及答案解析
- 2026浙江杭州珠江體育文化發(fā)展有限公司招聘備考考試試題及答案解析
- 2026新疆烏市第126中學(xué)慈湖初中部急聘初中物理老師備考考試題庫及答案解析
- 2026上半年云南事業(yè)單位聯(lián)考云南文化藝術(shù)職業(yè)學(xué)院招聘人員考試備考試題及答案解析
- 孕期血壓監(jiān)測與護理指導(dǎo)
- 2026年上半年黑龍江省科學(xué)院事業(yè)單位公開招聘工作人員24人筆試參考題庫及答案解析
- 2026年寧德市消防救援支隊政府專職消防隊員招聘65人備考考試題庫及答案解析
- 驗貨執(zhí)行合同書
- 2026年張家界航空工業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)技能筆試備考試題及答案詳解
- 終止妊娠藥物課件
- 2025年無人駕駛公共交通項目可行性研究報告
- 北京市朝陽區(qū)2026屆高三上英語期末考試試題含解析
- 亞急性硬化性全腦炎2-
- GB/T 6462-2025金屬和氧化物覆蓋層厚度測量顯微鏡法
- 工程量鑒定合同范本
- 建筑工程施工工藝詳細操作手冊
- 外科院感課件
- 2025國家核安保技術(shù)中心招聘筆試歷年??键c試題專練附帶答案詳解試卷3套
評論
0/150
提交評論