




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、江西師范大學(xué)計算機信息工程學(xué)院 數(shù)據(jù)結(jié)構(gòu)快速排序作者:楊勁松內(nèi)容提要快速排序?qū)肟焖倥判蛩枷肟焖倥判蛑v解快速排序算法分析練習(xí)題退出快速排序?qū)胝埻瑢W(xué)們使用冒泡排序的方法將下列數(shù)據(jù)排序:(從小到大)21 25 49 16 25 06 目錄初始狀態(tài)第一次交換結(jié)束快速排序?qū)?冒泡排序過程目錄第二次交換第二次交換結(jié)束快速排序?qū)?冒泡排序過程目錄第三次交換結(jié)束第二次交換結(jié)束第四次交換結(jié)束快速排序?qū)?冒泡排序過程目錄第六次交換結(jié)束第五次交換結(jié)束請同學(xué)們說說冒泡排序是如何工作的快速排序?qū)肽夸?對所有記錄從左到右每相鄰的元素進行比較 ,不符合要求則交換快速排序?qū)?冒泡排序分析冒泡排序的基本做法:思考
2、:在數(shù)據(jù)為以下排列時,冒泡的排序效果好不好?49 25 25 21 16 06 快速排序?qū)?冒泡排序分析初始狀態(tài)是反序的,則需要進行n-1趟掃描目錄快速排序?qū)?冒泡排序分析從直觀上49移動到最終的位置經(jīng)過了n-1次比較和交換49 25 25 21 16 0606 16 21 25 25 49能不能不經(jīng)過n-1次比較和交換呢?不能?這是由于冒泡排序中需要相鄰的元素兩兩比較、交換目錄快速排序思想基本思想:1)尋找一個中心元素(通常為第一個數(shù))2)將小于中心點的元素移動至中心點之前,大于中心點的元素移動至中心點之后。3)對上步分成的兩個無序數(shù)組段重復(fù)1)、2)操作直到段長為1。t=t目錄快速排序
3、思想以21為中心元素劃分可得:以06、49為中心元素劃分可得:目錄快速排序講解選取中心元素的問題選取第一個數(shù)為中心元素如何劃分問題如何重復(fù)步驟將所有數(shù)據(jù)排序使用遞歸目錄當(dāng)已知中心元素的前提下,怎樣將其他元素劃分好?(即:大于中心點在之后,小于中心點在之前)需要解決的問題快速排序講解i012345i=0i=1j=5j=5ji=1j=3i=1j=4i=2j=3i=2j=2算法終止目錄快速排序講解請同學(xué)們思考該算法有沒有可以改進的地方目錄快速排序講解i012345i=0i=1j=5j=5ji=1j=3i=1j=4i=2j=3i=2j=2算法終止通過動畫,可以看出每次中心元素都要交換。根據(jù)劃分的思想最
4、后位置一定是中心元素可以申請一個變量保存中心元素,以避免交換目錄快速排序講解i=left;j=right;int temp=aleft;do/從右向左找第1個不小于中心元素的位置jwhile( aj temp & ij) j-;if(ij)a I = a j ;i+;ai=temp;left,right用于限定要排序數(shù)列的范圍,temp即為中心元素程序填空當(dāng)前元素小于中心元素結(jié)束循環(huán)時,應(yīng)當(dāng)在中心元素的左邊移至左邊目錄快速排序講解/從左向右找第1個不大于中心元素的位置iwhile(aitemp & ij ) i+;if(ij)aj=ai;j-;while(ij);ai=temp; /將中心元素
5、t填入最終位置程序填空目錄快速排序講解函數(shù)頭:quicksort(int a,int left,int right)初始化:i=left;j=right;int temp=aleft;劃分:do一次劃分 while(ij);中心元素填入:ai=temp;遞歸地對剩余段作快速排序quicksort(a,left,i-1);quicksort(a,i+1,right);目錄快速排序完整代碼void quicksort(int a,int left,int right)int i,j;if(lefttemp & ij)j-;if(ij)ai=aj;i+;目錄while(aitemp & ij)i+;
6、if(ij)aj=ai;j-;while(ij);ai=temp;quicksort(a,left,i-1);quicksort(a,i+1,right);快速排序完整代碼目錄算法分析思考:當(dāng)數(shù)據(jù)有序的情況下,快速排序的效率如何?快速排序的最壞時間復(fù)雜度為O(n2)06 16 21 25 25 49例快速排序的最好時間復(fù)雜度為O(nlog2n)快速排序的平均時間復(fù)雜度為O(nlog2n)快速排序是不穩(wěn)定的排序方法目錄練習(xí)題1)在快速排序方法中,進行每次劃分時,是從當(dāng)前待排序區(qū)間 的_ 向_依次查找出處于逆序的元素并交換之,最后將 中心元素交換到一個確定位置,從而以該位置把當(dāng)前區(qū)間劃分為前后 兩端中間2)假定一組記錄的關(guān)鍵字為 (46,79,56,38,40,80),對其進行快速 排序的一次劃分的結(jié)果為_。38 40 46 56 79 843)快速排序在_情況下效率最低,在_情況下最易發(fā)揮其長
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務(wù)消防承包合同
- 小班安全教育與應(yīng)對措施計劃
- 急診護士培訓(xùn)與發(fā)展計劃
- 二零二五版美甲招聘合同
- 劇場場地租賃合同范例
- 護士的勞動合同范例二零二五年
- 品牌授權(quán)代理標(biāo)準(zhǔn)合同范例
- 兒童心理健康護理計劃
- 2025年高校教師假期科研計劃
- 長租公寓租賃合同范文
- 2025年中國工業(yè)X射線檢測設(shè)備行業(yè)市場集中度、企業(yè)競爭格局分析報告-智研咨詢發(fā)布
- 職工維權(quán)知識培訓(xùn)課件
- 2024銀行春招招聘解析試題及答案
- 2025陜西核工業(yè)工程勘察院有限公司招聘21人筆試參考題庫附帶答案詳解
- 2024中國核工業(yè)集團公司招聘(300人)筆試參考題庫附帶答案詳解
- 第15課《青春之光》課件-2024-2025學(xué)年統(tǒng)編版語文七年級下冊
- 初中網(wǎng)絡(luò)安全教育
- 浙江省杭州市金麗衢十二校2024-2025學(xué)年高三下學(xué)期(3月)第二次聯(lián)考數(shù)學(xué)試題 含解析
- DL∕T 5161.8-2018 電氣裝置安裝工程質(zhì)量檢驗及評定規(guī)程 第8部分:盤、柜及二次回路接線施工質(zhì)量檢驗
- (正式版)HGT 22820-2024 化工安全儀表系統(tǒng)工程設(shè)計規(guī)范
- 15D501 建筑物防雷設(shè)施安裝
評論
0/150
提交評論