VB各種排序方法_第1頁(yè)
VB各種排序方法_第2頁(yè)
VB各種排序方法_第3頁(yè)
VB各種排序方法_第4頁(yè)
VB各種排序方法_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

篩選法排序

21346

21346不交換交換

31246

41236交換交換

61234

6

1234交換

6

2134交換交換

6

3124

6

4123

6

4

123交換

6

4

213

6

4

312交換

6

4

312交換

6

4

3

2

1輪比較輪比較輪比較輪比較2021/6/271篩選法排序例:篩選法排序。(設(shè)從大到小排序)[分析]:將N個(gè)無(wú)序數(shù)據(jù)存放在數(shù)組中,對(duì)數(shù)組進(jìn)行N-1輪掃視。第一輪掃視:將A(1)與A(2)比較,若A(1)<A(2),則交換A(1)和A(2)的值;再將A(1)與A(3)、A(4)……

A(N)依次按以上規(guī)則比較和交換,第一輪掃視完畢,N個(gè)數(shù)中最大數(shù)存放到A(1)中。第二輪掃視:將A(2)與A(3)、A(4)…A(N)依次按以上規(guī)則比較;第三輪掃視:將A(3)與A(4)、A(5)…A(N)依次按以上規(guī)則比較;第N-1掃視:將A(N-1)與A(N)按以上規(guī)則比較排序完成。2021/6/272篩選法排序假定待排序的N個(gè)數(shù)已存放在數(shù)組A中1.確定排序需要幾輪的比較ForI=1ToN–1NextI1.確定排序需要幾輪的比較2.進(jìn)行每一輪的比較

ForJ=

To

NextJ1.確定排序需要幾輪的比較2.進(jìn)行每一輪的比較3.在每一輪比較中,比較兩個(gè)數(shù)的大小,根據(jù)比較結(jié)果決定是否交換兩個(gè)數(shù)IfA(I)<A(J)thenT=A(I)A(I)=A(J)A(J)=TEndIfI

+

1

NText1=Text1&Str(A(I))Text1=Text1&Str(A(N))2021/6/273篩選法排序返回2021/6/274用元素A(Pointer)去比較直接排序

24536I:1Pointer:1

64532交換Pointer:2交換Pointer:3不交換交換Pointer:5第一輪比較結(jié)束I≠Pointer則交換A(I)、A(Pointer)即交換A(1)和A(6)

64532第一輪比較第二輪比較I:2Pointer:2交換Pointer:3不交換不交換第二輪比較結(jié)束I≠Pointer則交換A(I)、A(Pointer)即交換A(2)和A(3)

6

5432第三輪比較

6

5

432I:3Pointer:3不交換不交換第三輪比較結(jié)束I=Pointer則不交換A(I)、A(Pointer)第四輪比較

6

5

4

32I:4Pointer:4不交換第四輪比較結(jié)束I=Pointer則不交換A(I)、A(Pointer)排序結(jié)束

6

5

4

3

22021/6/275直接排序設(shè)待排序的N個(gè)數(shù)存放在數(shù)組A中1.確定排序需要幾輪的比較ForI=1ToN–1NextI1.確定排序需要幾輪的比較2.設(shè)置這一輪指針初值Pointer=I1.確定排序需要幾輪的比較2.設(shè)置這一輪指針初值3.開(kāi)始一輪的比較ForJ=I+1ToNNextJIfA(Pointer)<A(J)ThenPointer=JEndIf1.確定排序需要幾輪的比較2.設(shè)置這一輪指針初值3.開(kāi)始一輪的比較4.進(jìn)行比較,根據(jù)比較結(jié)果

決定是否改變指針的值1.確定排序需要幾輪的比較2.設(shè)置這一輪指針初值3.開(kāi)始一輪的比較4.進(jìn)行比較,根據(jù)比較結(jié)果

決定是否改變指針的值5.一輪的比較結(jié)束后,根據(jù)指針的值與I是否不同,確定是否交換A(I)、A(Pointer)的值IfI<>OptionterThenT=A(I)A(I)=A(Pointer)A(Pointer)=A(I)EndIf2021/6/276直接排序返回2021/6/277冒泡法排序[分析]:(設(shè)從小到大排序)第一輪比較:將A(1)和A(2)比較,若A(1)>A(2)則交換這兩個(gè)數(shù)組元素的值,否則不交換;然后再用A(2)和A(3)比較,處理方法相同;

以此類(lèi)推,直到A(N-1)和A(N)比較后,這時(shí)A(N)中就存放了N個(gè)數(shù)中最大的數(shù)。第二輪比較:將A(1)和A(2)、A(2)和A(3),

,

A(N-2)和A(N-1)比較,處理方法和第一輪相同,這一輪比較結(jié)束后A(N-1)中就存放了N個(gè)數(shù)中第二小的數(shù)。第N-1輪比較:將A(1)和A(2)進(jìn)行比較,處理方法同上,比較結(jié)束后,這N個(gè)數(shù)按從小到大的次序排列好。每一輪的比較后都會(huì)使小數(shù)逐漸浮起來(lái),大數(shù)下沉,就象冒泡一樣2021/6/278冒泡排序舉例:對(duì)整數(shù)序列85243按升序排序8524352438243582345823458初始狀態(tài)第一趟結(jié)果第二趟結(jié)果第三趟結(jié)果第四趟結(jié)果小的逐漸上升每趟沉下一個(gè)最大的8582483885243程序2021/6/279冒泡法排序一2021/6/2710冒泡排序舉例:對(duì)整數(shù)序列85243按升序排序82345初始狀態(tài)第一趟結(jié)果第二趟結(jié)果小的逐漸上升每趟沉下一個(gè)最大的8

238

48

58

885243234582021/6/2711冒泡法排序二(按降序排列)第一論掃視:1、6、5、4、3、26、1、5、4、3、26、5、1、4、3、26、5、4、1、3、26、5、4、3、1、26、5、4、3、2、1第二輪掃視:6、5、4、3、2、16、5、4、3、2、16、5、4、3、2、16、5、4、3、2、16、5、4、3、2、1發(fā)生交換,繼續(xù)下一輪比較沒(méi)發(fā)生交換,結(jié)束比較2021/6/2712Switch=TrueDoWhileSwitchSwitch=FalseN=N-1Loop冒泡法排序二1.設(shè)置一個(gè)控制循環(huán)開(kāi)關(guān),當(dāng)某一輪比較中不發(fā)生數(shù)據(jù)交換時(shí),使開(kāi)關(guān)值為假,標(biāo)志排序結(jié)束

N=N-1

1.設(shè)置一個(gè)控制循環(huán)開(kāi)關(guān),當(dāng)某一輪比較中不發(fā)生數(shù)據(jù)交換時(shí),使開(kāi)關(guān)值為假,標(biāo)志排序結(jié)束2.進(jìn)行某一輪比較,若發(fā)生數(shù)據(jù)交換,設(shè)置開(kāi)關(guān)值為真ForI=1ToNIfA(I)>A(I+1)ThenSwitch=TrueTem=A(I)A(I)=A(I+1)A(I+1)=TemEndIfNextI返回2021/6/2713Switch=TrueDoWhileSwitch

Loop冒泡法排序二1.進(jìn)行某一輪比較,若發(fā)生數(shù)據(jù)交換,設(shè)置開(kāi)關(guān)值為真ForI=1ToNIfA(I)>A(I+1)ThenSwitch=TrueTem=A(I)A(I)=A(I+1)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論