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

VB解析冒泡排序为什么内循环要8-i

输入8个数字,从小到大,用冒泡排序

Dim a(10) As Integer

Private Sub Command1_Click()
For i = 1 To 8
x = Int(90 * Rnd) + 10
a(i) = x
Text1 = Text1 & x & " "
Next i
End Sub

Private Sub Command2_Click()
For i = 1 To 7 '外循环,冒泡排序这一句有什么用
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

For i = 1 To 8
Text2 = Text2 & a(i) & " "
Next i
End Sub

Private Sub Form_Load()
Text1 = ""
Text2 = ""
End Sub

慕村9548890
浏览 361回答 2
2回答

RISEBY

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

ITMISS

当待排序元素数量较大时,应该选用效率较高的排序方法,例如快速排序、归并排序等等。
打开App,查看更多内容
随时随地看视频慕课网APP