为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用VB解析冒泡排序为什么内循环要8-i?麻烦大佬帮帮忙

如何使用VB解析冒泡排序为什么内循环要8-i?麻烦大佬帮帮忙

慕村9548890 2021-05-30 17:14:17
VB解析冒泡排序为什么内循环要8-i输入8个数字,从小到大,用冒泡排序Dim a(10) As IntegerPrivate Sub Command1_Click()For i = 1 To 8x = Int(90 * Rnd) + 10a(i) = xText1 = Text1 & x & " "Next iEnd SubPrivate Sub Command2_Click()For i = 1 To 7 '外循环,冒泡排序这一句有什么用For j = 1 To 8 - i '内循环,冒泡排序这一句有什么用 为什么要8-i,If a(j) > a(j + 1) Thent = a(j): a(j) = a(j + 1): a(j + 1) = tEnd IfNext jNext iFor i = 1 To 8Text2 = Text2 & a(i) & " "Next iEnd SubPrivate Sub Form_Load()Text1 = ""Text2 = ""End Sub
查看完整描述

2 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。每一轮外循环,执行完毕后,最大的元素就会“沉”到最后,而相邻较小的元素都会“上浮”一位。所以,第一轮,是要比较到最后一个元素;而第二轮则只要比较到倒数第二个数,……,照此类推。
For i = 1 To 7 '外循环,(每一轮循环可将此轮循环中涉及的最大元素“沉”到最后,所以共要N-1轮)
For j = 1 To 8 - i '内循环,已确定有序的元素不再列入排序范围,所以是到8-i
If a(j) > a(j + 1) Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t
End If
Next j
Next i

查看完整回答
反对 回复 2021-06-07
?
ITMISS

TA贡献1871条经验 获得超8个赞

当待排序元素数量较大时,应该选用效率较高的排序方法,例如快速排序、归并排序等等。

查看完整回答
反对 回复 2021-06-07
  • 2 回答
  • 0 关注
  • 310 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信