vb随机产生范围从1到100的10个整数放在数组a(1to10)中,用选择法将数组中的元素按由小到大顺序输出

 我来答
貌似風輕
推荐于2016-11-14 · TA获得超过7280个赞
知道大有可为答主
回答量:1672
采纳率:94%
帮助的人:701万
展开全部

Private Sub Form_Click()

Form1.Cls

Dim i As Integer, j As Integer, temp As Integer, k As Integer

Dim a(1 To 10) As Integer

For i = 1 To 10

a(i) = Int(Rnd * 100 + 1)

Next i

For i = 1 To 10

k = i

For j = i + 1 To 10

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

Next j

If (k <> i) Then temp = a(i): a(i) = a(k): a(k) = temp

Next i

For i = 1 To 10

Print a(i);

Next 

End Sub

选择法比冒泡法效率更高,在于其引入了变量k,先只变动下标而不是如冒泡法那样temp = a(i): a(i) = a(j): a(j) = temp ,直接交换。

这样减少了temp = a(i): a(i) = a(j): a(j) = temp 执行次数,提高了效率

选择法最多只会交换 n-1 次,n是数列中数的个数(本题中最多9次)

冒泡法一般都会大于n-1次,而且大得多

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式