VB里冒泡排序法是怎么回事?麻烦举一个典型例子
收起
知与谁同
2018-07-15 19:17:11
1342
0
3
条回答
写回答
取消
提交回答
-
首先,你了解冒泡排序的机制,每个元素后面的元素比较,如果不到的背后,交换位置
在Private Sub SortIntegerArray(paintArray的()作为整数)
昏暗的lngX,只要
点心,只要
昏暗的intTemp作为整数
对于lngX = LBOUND(paintArray)(UBOUND(paintArray)的 - 1)
,对于lngY = LBOUND(paintArray)(UBOUND lngY (paintArray) - 1)
如果paintArray(lngY)> paintArray(lngY + 1),然后
intTemp = paintArray(lngY)
paintArray(lngY)= paintArray(lngY + 1) /> paintArray(lngY + 1)= intTemp
如果
下一页
END SUB
2019-07-17 22:50:53
-
5,3,4
-------
3,5,4
3,4,5
=====
5,3,4
-------
5,3,4
5,4,3
2019-07-17 22:50:53
-
就是比较数值,把大的或小的放在前面
比如,有一个数组a()包含{5,7,3,9,12,15,56}7个数
dim t as integer
for i=0 to a.count-1
for j=i+1 to a.count-1
t=a(i)
if a(i)<a(j) then
a(i)=a(j)
a(j)=t
next
next
这时比较排序法
下面是冒泡排序
Private Sub Form_Load()
Dim a,c As Variant
Dim i As Integer,j As Integer,temp As Integer,bSwap As Boolean
a = Array(17,45,12,80,50)
For j = 0 To UBound(a) - 1
bSwap = False
For i = 0 To UBound(a) - 1
If (a(i) > a(i + 1)) Then '若是递减,改为a(i)<a(i+1)
temp = a(i)
a(i) = a(i + 1)
a(i + 1) = temp
bSwap = True
End If
Next
If bSwap = False Then
Exit For
End If
Next
For Each c In a
Debug.Print c;
Next
End Sub
2019-07-17 22:50:53