VBA入门到进阶常用知识代码总结25

第25集 VBA排序算法之冒泡排序和选择排序
110、 冒泡排序
冒泡排序上面的数和它下面的数对比,如果大于它下面的数则互换,保证最后互换完小数上浮,大数下沉。
Sub 冒泡排序()
Dim arr, temp, x, y, t, k
t = Timer
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
'Range(“b2”) = Timer - t
End Sub
111、 选择排序
选择排序最后一个值和它上面的数中的最大值互换,保证每次外层循环最后一个数都是本次循环的最大值。
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 '最大的索引
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)) = “”
'Range(“c3”).Resize(UBound(arr)) = arr
'Range(“c2”) = Timer - t
'MsgBox k1
End Sub

发布了47 篇原创文章 · 获赞 0 · 访问量 224

猜你喜欢

转载自blog.csdn.net/tiansdk320/article/details/104364716