版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、江西師范大學計算機信息工程學院 數(shù)據(jù)結(jié)構(gòu)快速排序作者:楊勁松內(nèi)容提要快速排序?qū)肟焖倥判蛩枷肟焖倥判蛑v解快速排序算法分析練習題退出快速排序?qū)胝埻瑢W們使用冒泡排序的方法將下列數(shù)據(jù)排序:(從小到大)21 25 49 16 25 06 目錄初始狀態(tài)第一次交換結(jié)束快速排序?qū)?冒泡排序過程目錄第二次交換第二次交換結(jié)束快速排序?qū)?冒泡排序過程目錄第三次交換結(jié)束第二次交換結(jié)束第四次交換結(jié)束快速排序?qū)?冒泡排序過程目錄第六次交換結(jié)束第五次交換結(jié)束請同學們說說冒泡排序是如何工作的快速排序?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ù)組段重復1)、2)操作直到段長為1。t=t目錄快速排序
3、思想以21為中心元素劃分可得:以06、49為中心元素劃分可得:目錄快速排序講解選取中心元素的問題選取第一個數(shù)為中心元素如何劃分問題如何重復步驟將所有數(shù)據(jù)排序使用遞歸目錄當已知中心元素的前提下,怎樣將其他元素劃分好?(即:大于中心點在之后,小于中心點在之前)需要解決的問題快速排序講解i012345i=0i=1j=5j=5ji=1j=3i=1j=4i=2j=3i=2j=2算法終止目錄快速排序講解請同學們思考該算法有沒有可以改進的地方目錄快速排序講解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即為中心元素程序填空當前元素小于中心元素結(jié)束循環(huán)時,應當在中心元素的左邊移至左邊目錄快速排序講解/從左向右找第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);快速排序完整代碼目錄算法分析思考:當數(shù)據(jù)有序的情況下,快速排序的效率如何?快速排序的最壞時間復雜度為O(n2)06 16 21 25 25 49例快速排序的最好時間復雜度為O(nlog2n)快速排序的平均時間復雜度為O(nlog2n)快速排序是不穩(wěn)定的排序方法目錄練習題1)在快速排序方法中,進行每次劃分時,是從當前待排序區(qū)間 的_ 向_依次查找出處于逆序的元素并交換之,最后將 中心元素交換到一個確定位置,從而以該位置把當前區(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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度白酒線上線下聯(lián)合推廣代理合同3篇
- 二零二五版物流項目投資合作協(xié)議-風險控制3篇
- 人才培養(yǎng)模式與核心建設(shè)方案
- 設(shè)備監(jiān)理合同-設(shè)備監(jiān)理合同管理模擬試卷3
- 乳粉行業(yè)競爭對手分析考核試卷
- 體育場館體育設(shè)施安全疏散設(shè)計考核試卷
- 安徽省肥東縣高級中學高三上學期8月調(diào)研考試語文試卷(含答案)
- 第二十七章腹股溝斜疝的臨床表現(xiàn)61課件講解
- 2025年健身比賽裁判合同
- 2025年嬰童用品代理合作協(xié)議
- 銷售與銷售目標管理制度
- 人教版(2025新版)七年級下冊英語:寒假課內(nèi)預習重點知識默寫練習
- 2024年食品行業(yè)員工勞動合同標準文本
- 全屋整裝售后保修合同模板
- 高中生物學科學推理能力測試
- 2024年公安部直屬事業(yè)單位招聘筆試參考題庫附帶答案詳解
- 臨沂正祥建材有限公司牛心官莊鐵礦礦山地質(zhì)環(huán)境保護與土地復墾方案
- 六年級上冊數(shù)學應用題練習100題及答案
- 死亡報告年終分析報告
- 棋牌室禁止賭博警示語
- 公轉(zhuǎn)私人轉(zhuǎn)賬協(xié)議
評論
0/150
提交評論