VB選擇排序專題

2022-12-13 18:03:02 字數 3559 閱讀 1886

班級姓名

知識點回顧:

1、陣列的作用:一組意義相同,型別相同的資料的儲存,通常借助於陣列。如:

高二年級所有同學的學籍號可定義為大小為700(只能多不能少)的long型別的陣列xjh1 to 700) 或 xjh(699);

2、陣列名稱可自取: 符合※以字母開頭、※除了「_」外不能有其他字元、※不能用vb已用的關鍵字即可;

3、陣列下標的定義可以從任何數開始,但通常為0或1,如:a(19),表示下標從0開始到19;a(1 to 19)表示下標從1開始。下標即位置,能代表陣列值。

4、陣列賦初值方法多樣,通常用迴圈語句。沒有賦值預設陣列中每個數初值為0或false或「」。

5、排序概念和意義:把一組型別相同的資料按照公升序或者降序的規律排列起來。

6、排序的演算法要點:

※將n個資料儲存在陣列中;

※理清是公升序或是降序排序——公升序為從小到大,降序為從大到小;

※演算法很多——氣泡排序、選擇排序、插入排序、希爾排序、快速排序等……

7、選擇排序的特徵:以降序為例——第一遍排序,找出最大值的位置,與陣列中第乙個數交換,第二遍排序,找出次大值的位置,與陣列中第二個數交換。

8、關於選擇排序需理解:

※n個數最多進行n-1遍排序;兩數比較的次數最多為n*(n-1)/2;兩數交換次數最多為:n-1次;

※選擇排序的變式即改進演算法非常多,比如n個資料排序時,發現某一遍排序兩兩比較過程中已沒有資料交換則可以停止繼續排序,比如比較過程中直接交換等,在練習中要加強理解和記錄;

9、選擇排序的經典**:( 以降序為例,所有for語句都要熟練轉化為do while語句 )

鞏固練習:

1、在vb中,如果變數p用來儲存某張試卷上的缺考填塗標記,則p應採用的最適合的資料型別是( )

a.integer b.boolean c.single d.string

2、vb語句「dim a(50) as string」定義的陣列元素個數以及第8個陣列元素分別為vb語句「dim a(1 to 50) as long」定義的陣列元素個數以及第8個陣列元素分別為

a. 51,a(7b.50,a(7c. 51,a(8) d.50,a(8)

3、有如下visual basic程式段:

m = a(2)

for j = 3 to 50

if a(j) > m then m = a(j)

next j

msgbox(str(m))

該程式段執行後,變數m中儲存的是

4、以下程式執行後,i的值是( )

dim a(1 to 5) as integer

dim f as boolean

a(1) = 23: a(2) = 12: a(3) = 56: a(4) = 34: a(5) = 10

i = 1: f = true

do while i <= 5 and f = true

if a(i) = 56 then f = false

i = i + 1

loop

= ia.6b.3c.4d.5

5、在2023年秋季學校運動會上,男生第一組6位選手的百公尺成績(單位:秒)分別是「13.4、12.

3、11.2、13.8、13.

1、11.0」,若使用選擇排序法將該組的成績按第一名、第二名、第三名……的順序排序,則第一遍排序後的順序是兩遍排序後的順序是

a. 11.0 11.

2 12.3 13.8 13.

1 13.4b.11.

0 12.3 11.2 13.

8 13.1 13.4

c. 11.0 11.

2 13.4 12.3 13.

1 13.8d.11.

0 13.4 12.3 11.

2 13.8 13.1

6、有一組10個資料的無序序列,利用選擇排序演算法進行從小到大的排序,需要比較的次數和最多需要進行加工的遍數,以及最多交換陣列資料的次數分別為

a. 9,9,9 b.15,9,8 c.45,9,9 d.45,8,8

7、在nba某賽季中,快船隊5場比賽得分依次為97,89,111,70,90,若採用選擇排序演算法對其進行從小到大排序,在整個排序過程中,資料97被交換的次數是

a.1 b.2 c.3 d.4

8、用選擇排序演算法對一組學生的身高資料進行公升序排序,已知第一遍排序結束後的資料序列為165,168,178,175,171,則下列選項中可能是原始資料序列的是

9、對儲存在stu ( 0 to n )中的n+1個元素用選擇排序演算法進行排序,元素交換次數的範圍和元素比較次數的值分別為

a、[0,n],(n-1)*n/2b、[1,n-1],(n-1)*n/2

c、[0,n],(n+1)*n/2d、[1,n-1],(n+1)*n/2

10、以下是選擇排序主要部分,其中線框內**用於尋找d(a)到d(n)的最小值的下標(即通常所說的位置)。

for a=1 to n-1

next a

框內**執行結束時,儲存最小值的陣列元素一定是

a、d(n) b、d(bc、d(a) d、d(k)

11、以下程式段是選擇排序的核心**,閱讀並完成以下10—12題:

#1 for i=1 to n-1 step 1

#2k=i : j=i+1

#3do while j<=n

#4if d(j)#5loop

#6 next i

12、**中缺少乙個語句,造成程式錯誤,應補充在

a、 #2後面 b、#3後面 c、#4後面 d、#5後面

13、缺少的語句是a、while j<=n b、j=j+1 c、end if d、i=i+1

14、**修改正確後,這段程式使用了兩層迴圈(即雙迴圈),迴圈次數總共

a、無限次 b、n*(n-1)/2次 c、n 次 d、0次

15、以下程式段的功能是找到a(1)到a(10)中較大的3個數分別儲存在a(1)、a(2)、a(3)中並將前3名列在list1中,請將空白處填充完整:

for控制查詢遍數,這裡需找出前3個即可

for j=i+1 to 10

if a(j)>a(k) then

next j

if k<>i then t=a(k):a(k)=a(i):a(i)=t

str(a(i))

此題我們採用了氣泡排序\解析演算法\選擇排序\列舉演算法)

16、在**網上搜尋商品,可以按使用者需要根據**進行公升序或降序排列。用選擇排序演算法編寫函式實現功能。主要程式如下,其中n為商品個數,jp陣列存放商品**資訊,sx為true時表示公升序。

請將劃線部分補充完整。

function px(sx as boolean)

dim i,j,k as integer

dim t as double

for i=n to 2 step -1

for j=i-1 to 1

ifthen

VB選擇結構

三 完善程式鞏固新知 引入 半成品加工策略 出示順序結構中曾經完成的練習,要求學生指出原程式中有哪些還不夠完善的地方,請運用本課知識,進行修改 除錯,鞏固本課重點。要求兩人一組,兩人共同對兩個練習進行分析,然後每人選做一題,可以互相幫助,做完後互相交流,互相評價結果。練習一 乙個小球,不停地向上方滾...

VB選擇結構

按要求儲存檔案,窗體檔名為e6.frm,工程檔名為e6.vbp。7.彈球。窗體上有乙個紅色實心小球shape1,兩個命令按鈕 mand1和 mand2,乙個定時器timer1。shape1控制項屬性設定 shape 3 circle borderstyle 0 transparent fillsty...

VB選擇結構

第四章選擇結構程式設計 程式設計基本過程 變數定義 變數賦值 直接輸入 文字框輸入 inputbox函式 問題解決計算過程 輸出計算結果 print語句 文字框輸出 執行 除錯 修改及完善程式 儲存程式。例 4.9 編寫程式,從鍵盤上輸入三角形的三個邊長值,應用下面計算三角形面積的公式求三角形面積。...