![【專題】常見幾種排序法比較_第1頁](http://file4.renrendoc.com/view/7671924d97f5d9a0d76856dfb4c83513/7671924d97f5d9a0d76856dfb4c835131.gif)
![【專題】常見幾種排序法比較_第2頁](http://file4.renrendoc.com/view/7671924d97f5d9a0d76856dfb4c83513/7671924d97f5d9a0d76856dfb4c835132.gif)
![【專題】常見幾種排序法比較_第3頁](http://file4.renrendoc.com/view/7671924d97f5d9a0d76856dfb4c83513/7671924d97f5d9a0d76856dfb4c835133.gif)
![【專題】常見幾種排序法比較_第4頁](http://file4.renrendoc.com/view/7671924d97f5d9a0d76856dfb4c83513/7671924d97f5d9a0d76856dfb4c835134.gif)
![【專題】常見幾種排序法比較_第5頁](http://file4.renrendoc.com/view/7671924d97f5d9a0d76856dfb4c83513/7671924d97f5d9a0d76856dfb4c835135.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
常見幾種排序方法復(fù)習(xí)冒泡法、選擇法、插入法、桶排序、索引排序比較方向:從右往左比較,先確定左側(cè)數(shù)組元素規(guī)則:從右往左先定左比較方向:從左往右比較,先確定數(shù)組元素a(i)規(guī)則:無論左右先定i總是拿a(i)右側(cè)數(shù)據(jù)來比較k=jFori=1Ton-1Forj=1Ton-iIfa(j)>a(j+1)Thentemp=a(j+1)a(j+1)=a(j)a(j)=tempEndIfNextjNexti比較方向:從左往右比較,先確定右側(cè)數(shù)組元素規(guī)則:從左往右先定右冒泡法變式一:Fori=nTo2step-1Forj=1Toi-1Ifa(j)>a(j+1)Thentemp=a(j+1)a(j+1)=a(j)a(j)=tempEndIfNextjNexti比較方向:從左往右比較,先確定右側(cè)數(shù)組元素規(guī)則:從左往右先定右冒泡法變式二:Fori=nTo2step-1Forj=nTon-i+2step-1Ifa(j)>a(j-1)Thentemp=a(j-1)a(j-1)=a(j)a(j)=tempEndIfNextjNexti比較方向:從右往左比較,先確定左側(cè)數(shù)組元素規(guī)則:從右往左先定左冒泡法變式三:Fori=1Ton—1k=iForj=nToi+1
step-1
Ifa(j)<a(k)Thenk=j(luò)NextjIfk<>iThent=a(i):a(i)=a(k):a(k)=tEndIfNexti比較方向:從右往左比較,先確定數(shù)組元素a(i)規(guī)則:無論左右先定i選擇法變式一:總是拿a(i)右側(cè)數(shù)據(jù)來比較Fori=nTo2step-1k=iForj=
1Toi-1
Ifa(j)<a(k)Thenk=j(luò)NextjIfk<>iThent=a(i):a(i)=a(k):a(k)=tEndIfNexti比較方向:從左往右比較,先確定數(shù)組元素a(i)規(guī)則:無論左右先定i選擇法變式二:總是拿a(i)左側(cè)數(shù)據(jù)來比較Fori=nTo2step-1k=iForj=
i-1To1
step-1Ifa(j)<a(k)Thenk=j(luò)NextjIfk<>iThent=a(i):a(i)=a(k):a(k)=tEndIfNexti比較方向:從右往左比較,先確定數(shù)組元素a(i)規(guī)則:無論左右先定i選擇法變式三:總是拿a(i)左側(cè)數(shù)據(jù)來比較核心問題:無論哪一種排序,每一輪(遍)排序,都是將最大或最小的放在數(shù)組剩余元素最左側(cè)或最右側(cè),應(yīng)當(dāng)確保接下來每一輪(遍)比較是對所有剩余數(shù)組元素的比較,不能有遺漏。某VB程序段如下:Fori=1To3
Forj=i+1To6
Ifa(j)<a(j-1)Thent=a(j):a(j)=a(j-1):a(j-1)=tNextjNexti數(shù)組元素a(1)到a(6)的值依次為“99,100,30,21,43,19”,經(jīng)過該程序段“加工”后a(4)、a(5)、a(6)的值依次為__________________解析:此例并不是冒泡法排序,標(biāo)準(zhǔn)的冒泡法排序,從左往右比較,每次都應(yīng)當(dāng)是從最左邊固定元素往右(如FORi=1to……),右側(cè)參與比較的數(shù)據(jù)每一遍減少一個,反之,從右往左比較,每次都應(yīng)當(dāng)是從最右邊固定元素往左(如FORi=nto……),左側(cè)參與比較的數(shù)據(jù)每一遍減少一個此例當(dāng)i=1時,第一遍比較,99與100比較,不用交換,然后100與后面的每一個都交換,數(shù)組值變?yōu)椋?9,30,21,43,19,100,第二遍,99不再參加比較,30與21交換,43與19交換,變?yōu)椋?9,21,30,19,43,100,第三遍,99,21不再參加比較,30與19交換,變?yōu)椋?9,21,19,30,43,100,所以答案為:30,43,100插入法排序核心代碼(升序為例)Fori=2To10
tmp=a(i)j=i-1DoWhiletmp<a(j)a(j+1)=a(j)j=j-1Loopa(j+1)=tmpNexti插入排序變形(升序)升序為例fori=2ton
tmp=a(i)
j=1
dowhiletmp>=a(j)
j=j+1
ifj=ithenexitdo
loop
fork=itoj+1step-1
a(k)=a(k-1)
nextk
a(k)=tmpnexti桶排序的算法思想最快最簡單的排序:桶排序期末考試完了老師要將同學(xué)們的分?jǐn)?shù)按照從高到低排序。班上只有5個同學(xué),這5個同學(xué)分別考了5分、3分、5分、2分和8分,考得真是慘不忍睹(滿分是10分)。接下來將分?jǐn)?shù)進行從大到小排序,排序后是85532。那么有沒有什么好方法編寫一段程序,讓計算機隨機讀入5個數(shù)然后將這5個數(shù)從大到小輸出。桶排序如下圖所示,桶排序的算法思想是這樣的:要對分?jǐn)?shù)進行排序,可以通過這樣的方法來實現(xiàn),假設(shè)有11個桶,從0~10對桶進行編號。每出現(xiàn)一個數(shù),就在對應(yīng)編號的桶中放一面小旗子,最后只要數(shù)數(shù)每個桶中有幾面小旗子就可以了。例如2號桶中有1面小旗子,表示2出現(xiàn)了一次;3號桶中有1面小旗子,表示3出現(xiàn)了一次;5號桶中有2面小旗子,表示5出現(xiàn)了兩次;8號桶中有1面小旗子,表示8出現(xiàn)了一次。桶排序
在輸出時,如果是升序排序,只要按照桶的編號,從小到大對桶進行檢查,如果發(fā)現(xiàn)桶里面只要有1面以上的小旗子(非空)就輸出桶的編號,如果有2面小旗子就連續(xù)輸出兩次,依次類推┈┈,這樣就快速地實現(xiàn)了升序排列。而如果是在排序時去除重復(fù)的數(shù)據(jù),則更加簡單了。一般來說,桶的算法思想主要有以下三種功能:1.桶計數(shù)功能、2.桶排序功能、3.驗證數(shù)據(jù)是否存在。桶排序桶排序 桶排序的算法思想是:如圖a所示,有10個桶,編號為1~10。每出現(xiàn)一個數(shù),就在對應(yīng)編號的桶中的放一面小旗子,最后只要看每個桶中有幾面小旗子就可以了。例如2號桶中有1面小旗子,表示2出現(xiàn)了一次;3號桶中有1面小旗子,表示3出現(xiàn)了一次;5號桶中有2面小旗子,表示5出現(xiàn)了兩次;8號桶中有1面小旗子,表示8出現(xiàn)了一次。最后只要按桶的編號順序逐次輸出非空的桶編號即可實現(xiàn)排序功能。桶排序桶排序小明利用桶排序的算法思想實現(xiàn)對5個[1,10]隨機整數(shù)的排序過程。實現(xiàn)上述功能的VB程序如圖b所示,請在劃線處填入合適的代碼。Dima(1To5)AsInteger
′數(shù)組a用于存放數(shù)字Dimb(1To10)AsInteger
′數(shù)組b相當(dāng)于桶PrivateSubForm_Load()
′生成5個[1,10]隨機整數(shù)
List1.Clear
Randomize
Fori=1To5桶排序b(a(i))=b(a(i))+1桶排序b(i)Str(i)桶排序解析:本題考查VB基本程序閱讀及運算能力。①該程序使用了桶排序的算法思想,數(shù)組b相當(dāng)于桶,用于記錄數(shù)組a的小旗子的數(shù)量,也就是說數(shù)組a的值是數(shù)組b的下標(biāo),數(shù)組b的值是數(shù)組a的值出現(xiàn)的次數(shù),因此答案是b(a(i))=b(a(i))+1。請?zhí)貏e注意,該題涉及數(shù)組嵌套,即數(shù)組a的值是數(shù)組b的下標(biāo)。②如果小旗子的數(shù)量多于1面,則需要輸出多次,因此內(nèi)循環(huán)是控制輸出次數(shù)的,其終值由b(i)決定,當(dāng)b(i)=0時,相當(dāng)于不輸出。③排序后輸出數(shù)據(jù),只需要輸出桶的編號i并將其轉(zhuǎn)換為字符類型即可。索引排序索引排序是指不改變原始數(shù)組a()數(shù)據(jù)的前提下,引用新的數(shù)組b()用于記錄a()數(shù)組元素在所有元素中的排名(即索引),簡單說就是通過排序交換數(shù)組b()元素的值,比如升序排列,b(1)就要記錄下a()數(shù)組中值最小的元素的下標(biāo),b(2)就要記錄下a()數(shù)組中值第二小的元素的下標(biāo),依此類推。下標(biāo)原始原始下標(biāo)排序排序后i=1b(1)=1a(1)=9a(b(1))=9i=1b(1)=4a(b(1))=3a(4)=3i=2b(2)=2a(2)=6a(b(2))=6i=2b(2)=5a(b(2))=4a(5)=4i=3b(3)=3a(3)=8a(b(3))=8i=3b(3)=2a(b(3))=6a(2)=6i=4b(4)=4a(4)=3a(b(4))=3i=4b(4)=3a(b(4))=8a(3)=8i=5b(5)=5a(5)=4a(b(5))=4i=5b(5)=1a(b(5))=9a(1)=9索引排序之結(jié)合選擇法排序Dima(1To5)AsInteger,b(1To5)AsIntegera(1)=9:a(2)=6:a(3)=8:a(4)=3:a(5)=4Fori=1To5'初始化b(i)=iNextiFori=1To4k=iForj=i+1To5Ifa(b(k))>a(b(j))Thenk=jNextjIfk<>iThent=b(k):b(k)=b(i):b(i)=tNextiFori=1To5List1.AddItemStr(a(b(i)))Nexti索引排序之結(jié)合冒泡法排序Dima(1To5)AsInteger,b(1To5)AsIntegera(1)=9:a(2)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年馬拉松比賽合作協(xié)議書
- 人教版地理八年級下冊6.4《祖國的首都-北京》聽課評課記錄2
- 【部編版】七年級歷史上冊 《中國早期人類的代表-北京人》公開課聽課評課記錄
- 豬欄承包協(xié)議書(2篇)
- 生產(chǎn)工人中介合同(2篇)
- 人教版數(shù)學(xué)九年級上冊《構(gòu)建知識體系級習(xí)題訓(xùn)練》聽評課記錄1
- 北師大版道德與法治九年級上冊4.1《經(jīng)濟發(fā)展新階段》聽課評課記錄
- 八年級思想讀本《5.1奉法者強則國強》聽課評課記錄
- 五年級上冊數(shù)學(xué)聽評課記錄《4.2 認識底和高》(3)-北師大版
- 湘教版數(shù)學(xué)八年級上冊2.3《等腰(邊)三角形的判定》聽評課記錄
- 城市隧道工程施工質(zhì)量驗收規(guī)范
- 2025年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招高職單招英語2016-2024年參考題庫含答案解析
- 五 100以內(nèi)的筆算加、減法2.筆算減法 第1課時 筆算減法課件2024-2025人教版一年級數(shù)學(xué)下冊
- 2025江蘇太倉水務(wù)集團招聘18人高頻重點提升(共500題)附帶答案詳解
- 2024-2025學(xué)年人教新版高二(上)英語寒假作業(yè)(五)
- 2025年八省聯(lián)考陜西高考生物試卷真題答案詳解(精校打印)
- 2025脫貧攻堅工作計劃
- 借款人解除合同通知書(2024年版)
- 《血小板及其功能》課件
- 江蘇省泰州市靖江市2024屆九年級下學(xué)期中考一模數(shù)學(xué)試卷(含答案)
- 沐足店長合同范例
評論
0/150
提交評論