冒泡排序
每一個數(shù)字都和它下面的所有數(shù)字進行對比斧蜕,如果比他小号显,進行互換,如果比他大鹦倚,保持不變河质。
Sub 冒泡排序演示()
Dim arr, temp, x, y, t, k
arr = Range("a1:a10")
For x = 1 To UBound(arr) - 1
For y = x + 1 To UBound(arr)
If arr(x, 1) > arr(y, 1) Then
temp = arr(x, 1)
arr(x, 1) = arr(y, 1)
arr(y, 1) = temp
End If
Next y
Next x
Range("b3").Resize(x) = ""
Range("b3").Resize(x) = arr
End Sub
選擇排序
選擇排序法的循環(huán)是從下往上循環(huán),每個數(shù)字和它以上的所有數(shù)字的最大值進行互換震叙,這個方法要比冒泡排序法快一些掀鹅,不需要逐個互換,只和最大值進行互換媒楼。
Sub 選擇排序()
Dim arr, temp, x, y, t, imax, k, k1, k2
t = Timer
arr = Range("a1:a10")
For x = UBound(arr) To 1 + 1 Step -1
imax = 1 '最大的索引乐尊,先假設最大值所在的位置為1
For y = 1 To x
If arr(y, 1) > arr(imax, 1) Then imax = y '找到最大值在哪一行
Next y
temp = arr(imax, 1)
arr(imax, 1) = arr(x, 1)
arr(x, 1) = temp
Next x
Range("c3").Resize(UBound(arr)) = arr
End Sub