下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、16. 【加試題】n個(gè)數(shù)據(jù)的冒泡排序需要經(jīng)過n-1遍加工,每一遍加工自下而上比較相鄰兩個(gè)數(shù)據(jù),把較小者交換到上面。小劉發(fā)現(xiàn):當(dāng)某一遍加工過程中沒有數(shù)據(jù)交換,說明數(shù)據(jù)已經(jīng)有序,無需進(jìn)一步加工。為此,小劉對算法進(jìn)行優(yōu)化,編寫了一個(gè)VB程序,功能如下:運(yùn)行程序時(shí),在列表框List1中顯示排序前數(shù)據(jù),單擊“排序”按鈕Commaiid1,在列表框List2 中顯示這些數(shù)據(jù)按升序排序后的結(jié)果,在標(biāo)簽Label3中顯示排序過程的加工遍數(shù)。運(yùn)行效果如第16題圖所示。實(shí)現(xiàn)上述功能的VB代碼如下,但加框處代碼有錯(cuò),請改正。Dim a(1 To 8) As IntegerDim n As IntegerPrivat
2、e Sub Form_Load()'n=8,排序前數(shù)據(jù)存儲(chǔ)在數(shù)組a中,并在列表框Listl中顯示 '代碼略End SubPrivate Sub Command1_Click()Dim flag As Boolean 'flag值為True表示一遍加工中發(fā)生過交換i = 1flag = TrueDo While '(1) i <= n - 1 Or flag = True flag = False For j = n To i + 1 Step -1 If a(j) < a(j - 1) Then k = a(j): a(j) = a(j - 1):
3、a(j - 1) = k flag = True End If Next j i = i + 1LoopStr(i)Label3.Caption = "排序過程的加工遍數(shù)為" + '(2)For i = 1 To n List2.AddItem Str(a(i)Next iEnd Sub第16題圖16【加試題】小吳為了研究冒泡排序過程中數(shù)據(jù)的“移動(dòng)”情況,編寫了一個(gè)VB程序,功能如下:在列表框List1中顯示排序前數(shù)據(jù)(存儲(chǔ)在數(shù)組a中),在文本框Text1中輸入初始位置(即下標(biāo)值),單擊“排序”按鈕Command1后,在標(biāo)簽Label1中顯示指定初始位置的數(shù)據(jù)在排序
4、過程中的位置變化情況,排序后的數(shù)據(jù)顯示在列表框List2中。程序運(yùn)行界面如圖所示。實(shí)現(xiàn)上述功能的VB程序如下,但加框處代碼有錯(cuò),請改正。Dim a(1 To 8) As IntegerDim n As IntegerPrivate Sub Form_Load()a(1) = 30: a(2) = 47: a(3) = 30: a(4) = 72a(5) = 70: a(6) = 23: a(7) = 99: a(8) = 24n = 8For i = 1 To 8List1.AddItem a(i)Next iEnd SubPrivate Sub Command1_Click()Dim i A
5、s Integer, j As Integer, k As IntegerDim pos As IntegerDim s As Strings = Text1.Textpos = Val(Text1.Text)For i = 1 To n - 1For j = n To i + 1 Step -1If a(j) < a(j - 1) Then k = a(j)a(j - 1) = a(j)a(j) = k'如果pos位置的數(shù)據(jù)參與交換,則更新pos值,記錄pos變化位置If pos = j Then pos = j - 1s = s + "" + Str(po
6、s) Elsepos = js = s + "" + Str(pos)End IfEnd IfNext jNext iLabel1.Caption = "位置變化情況:" + s數(shù)組元素?cái)?shù)組元素的含義a(1)存儲(chǔ)班級數(shù)na(2)從a(2)到a(n+1) 依次存儲(chǔ)第1、2、第n個(gè)班級人數(shù)a(n+1)a(n+2)從a(n+2) 依次存儲(chǔ)第1班每個(gè)學(xué)生的單科成績、第2班每個(gè)學(xué)生的單科成績、第n班每個(gè)學(xué)生的單科成績 For i = 1 To nList2.AddItem Str(a(i)Next iEnd Sub16【加試題】小李基于冒泡排序算法編寫了一個(gè)VB程
7、序,功能如下:在文本框Text1中顯示排序前的數(shù)據(jù),單擊“排序”按鈕Command1,在文本框Text2中顯示剔除重復(fù)數(shù)據(jù)后的升序排序結(jié)果。程序運(yùn)行界面如下圖所示。實(shí)現(xiàn)上述功能的VB程序如下,但加框處代碼有錯(cuò),請改正。Const n = 10Dim a(1 To n) As IntegerPrivate Sub Command1_Click()Dim i As Integer, j As Integer, t As IntegerDim bottom As Integer'獲取排序前數(shù)據(jù)依次存儲(chǔ)在數(shù)組a中,并在文本框Text1中顯示。代碼略bottom = ni = 1Do While i <= bottom - 1 For j = bottom To i + 1 Step -1 If a(j) < a(i) Then t = a(j): a(j) = a(j - 1): a(j - 1) = t ElseIf a(j) = a(j - 1) Then ' 相鄰兩個(gè)數(shù)據(jù)相等,進(jìn)行剔除處理 a(bottom)=a(j) bottom = bottom - 1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)解聘合同模板
- 合同模板 委托書
- 2024產(chǎn)品代理合同協(xié)議范本
- 合作養(yǎng)肉鵝合同模板
- 抖音小店合伙協(xié)議合同范本
- 高新區(qū)房屋合同范本
- 楊浦企業(yè)食堂承包合同范本
- 汽車銷售業(yè)務(wù)員的合同范本
- 食堂經(jīng)費(fèi)合同范本
- 人教版五年級上冊四則混合運(yùn)算300道及答案
- 部編一年級上冊課件《zhchshr》課件
- 部編版二年級語文上冊《望廬山瀑布》教學(xué)課件2篇21
- 學(xué)習(xí)領(lǐng)悟在全國民族團(tuán)結(jié)進(jìn)步表彰大會(huì)上重要講話心得體會(huì)
- 《寧夏閩寧鎮(zhèn):昔日干沙灘今日金沙灘》教案 2023-2024學(xué)年高教版(2023)中職語文職業(yè)模塊
- 紅薯種植課程設(shè)計(jì)
- 幼兒園大班藝術(shù)課件:《國旗國旗紅紅的哩》
- 動(dòng)火作業(yè)審批表
- 飲用水衛(wèi)生安全知識培訓(xùn)PPT.ppt
- 5G+智慧物流項(xiàng)目創(chuàng)業(yè)計(jì)劃書(模板范文)
- 蘇教版五年級數(shù)學(xué)上冊第三單元測試卷(含答案)
- 淺談小學(xué)數(shù)學(xué)教學(xué)中的兒童心理學(xué)應(yīng)用
評論
0/150
提交評論