選擇法排序vb.net 選擇法排序C語言PTA

VB選擇法排序

Private?Sub Command1_Click()

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了源城免費建站歡迎大家使用!

Dim a(1 To 10) As Integer

For i = 1 To 10

a(i) = Int(Rnd * 10)

Print a(i);

Next i

Print

'以上十隨機得出10個數(shù)

For i = 1 To 9 '這里開始是雙重循環(huán)

For j = i + 1 To 10

If a(i) a(j) Then '如果前一個數(shù)大于后一個數(shù)則交換位置

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

End If

Next j

Print a(i);

Next i

Print a(i);

End Sub

I等于1時 就是拿第一位和第二位比較 比較大的的數(shù)排后面 然后比較第一位和第三位 For j = i + 1

To 10 直到比較到最后一位

i=2 時也是如此 循環(huán)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

I=2時

j=3時 2 3 5 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

Print

For?i?=?1?To?9

k?=?i

For?j?=?k?+?1?To?10

If?a(j)??a(k)?Then?k?=?j

Next?j

If?a(i)??a(k)?Then

b?=?a(i)

a(i)?=?a(k)

a(k)?=?b

End?If

Next?i

For?i?=?1?To?10

Print?a(i);

Next?i

Print

End?Sub

參考資料:百度百科 - 選擇法排序

VB中選擇法排序跟冒泡法排序有什么區(qū)別?。?/h2>

冒泡排序的思想為:每一次排序過程,通過相鄰元素的交換,將當(dāng)前沒有排好序中的最大(?。┮频綌?shù)組的最右(左)端。選擇排序的思想也很直觀:每一次排序過程,我們獲取當(dāng)前沒有排好序中的最大(?。┑脑睾蛿?shù)組最右(左)端的元素交換,循環(huán)這個過程即可實現(xiàn)對整個數(shù)組排序。還有就是選擇排序的平均時間復(fù)雜度比冒泡排序的稍低:

同樣數(shù)據(jù)的情況下,2種算法的循環(huán)次數(shù)是一樣的,但選擇排序只有0到1次交換,而冒泡排序只有0到n次交換

VB中如何給指定的數(shù)組排序??

Private Sub Command4_Click()

Dim t As clerk, i%, j%

For i = 0 To n - 1

? For j = i To n - 2

? ? ? If a(i).vc a(j + 1).vc Then

? ? ? ? ? t = a(i): a(i) = a(j + 1): a(j + 1) = t

? ? ? End If

? Next j

Next i

Picture2.Cls

Picture2.Print "學(xué)號? ? ? ? ? 姓名? ? ? ? ? ?VC? ? ? ? ? ? VB"

Picture2.Print "---------------------------------------------"

For i = 0 To n - 1

? Picture2.Print a(i).number, a(i).name, a(i).vc, a(i).vb

? Print

Next i

End Sub

擴展資料

vb數(shù)組排序思路:

1、冒泡排序法:

位置相鄰兩數(shù)進行兩兩比較,在比較時如果發(fā)現(xiàn)前面的數(shù)比后面的數(shù)大,則進行交換,都比較完一輪后,把最大一個數(shù)放到最后,如此進行下去即可完成冒泡排序。

2、比較交換法

假設(shè)第一個數(shù)最小,然后第一個數(shù)依次與后面的每個數(shù)都進行比較, 若比較時發(fā)現(xiàn)后面的數(shù)比第一個數(shù)小, 則兩數(shù)位置進行交換, 全部都比較完算一輪,每一輪比較完后,第一個數(shù)是最小的數(shù),如此進行即可完成比較排序。

3、選擇排序

假設(shè)第一個數(shù)最小,接著記下最小數(shù)所在的位置,然后將最小數(shù)依次與后面的每一個數(shù)都進行比較,若比較時發(fā)現(xiàn)后面的數(shù)比最小的數(shù)還小,則修改最小數(shù)所在位置,全部都比較完算一輪。

每一輪比較完后,最小數(shù)所在的位置是否跟假設(shè)的是同一個位置,若不是,則最小數(shù)與第一個數(shù)進行交換位置,如此進行即可完成選擇排序。

網(wǎng)頁標(biāo)題:選擇法排序vb.net 選擇法排序C語言PTA
文章網(wǎng)址:http://muchs.cn/article6/hhecig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、營銷型網(wǎng)站建設(shè)、網(wǎng)站排名、電子商務(wù)、靜態(tài)網(wǎng)站、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營