VB選擇法排序

2021-06-25 15:01:37 字數 1430 閱讀 9809

1樓:兔丞飛

private sub command1_click()dim a(1 to 10) as integerfor i = 1 to 10

a(i) = int(rnd * 10)

print a(i);

next i

print

'以上十隨機得出10個數

for i = 1 to 9 '這裡開始是雙重迴圈for j = i + 1 to 10

if a(i) > a(j) then '如果前一個數大於後一個數則交換位置

t = a(i): a(i) = a(j): a(j) = tend if

next j

print a(i);

next i

print a(i);

end sub

i等於1時 就是拿第一位和第二位比較 比較大的的數排後面 然後比較第一位和第三位 for j = i + 1

to 10 直到比較到最後一位

i=2 時也是如此 迴圈9次就完成排序

5 3 2 7

i=1 時

j=2時 3 5 2 7

j=3時 2 5 3 7

j=4時 2 5 3 7

擴充套件資料private sub command1_click()dim a(10) as integer

dim b as integer

dim i as integer

dim j as integer

dim k as integer

for i = 1 to 10

a(i) = int(rnd * 90 + 10)print a(i);

next i

printfor i = 1 to 9

k = i

for j = k + 1 to 10

if a(j) < a(k) then k = jnext j

if a(i) > a(k) then

b = a(i)

a(i) = a(k)

a(k) = bend if

next ifor i = 1 to 10print a(i);next i

2樓:匿名使用者

假如對 5 3 2 7這四個數進行降序排列,總共需要3輪比較 即外迴圈的迴圈次數

第1輪比較:5與3比 不交換 ;5與2比 不交換; 5與7比 交換;陣列變成 7 3 2 5

第2輪比較:3與2比 不交換; 3與5比 交換; 陣列變成 7 5 3 2

第3輪比較:3與2比 不交換; 陣列變成 7 5 3 2

3樓:

這叫冒泡演算法

你自己按f8除錯,用滑鼠定位變數,檢視每個變數的變化,比別人說更容易理解...

(選擇法對數排序)真的不知道錯哪裡了,請各位幫我看一下,是不是我的VC 編譯器有問題呀

for i 0 i 9 i scanf d a i 改為for i 0 i 9 i scanf d a i 去掉 d後面的空格即可,在輸入資料時分隔符不變,仍然是空格或者回車 void main for i 0 i 9 i printf d a i 因為迴圈是從0開始到9的,但當到9時迴圈滿足條件繼...

關於VB的氣泡排序法,急,關於C語言氣泡排序法的問題

1 這個首先是 下標越界 吧,可以dim a 5 as integer 需要注意的是 你只用了5個元素,你沒用option base 1,所以下標從0開始的。2 其次是 型別不匹配 陣列的輸出要採用如下形式 for i 1 to ubound a print a i next i 你的a陣列沒有定義...

為什麼選擇法律專業,我們為什麼選擇法學

參考 人脈變幻無常,財富浮沉易變,知識終會老化,惟有技能可以歷久常新。讓法律思維與寫作技能紮根於你的思維深處,貫徹於你日常的一言一行當中。高雲法律是一門高尚而神聖的學科,美國當代著名法學家博登海默說過,法律是人類最偉大的發明,因為別的發明使人類學會了駕馭自然,而惟有法律讓人類學會了如何駕馭自己。早在...