如何用VBA实现冒泡排序?
何为冒泡排序?
冒泡排序(Bubblesort)以其"在排序过程中相邻元素不断交换,一些元素慢慢被换到最后,看起来就像是元素在冒泡一样,因此而得名"。
原理:重复的走访需要排序的元素列,依次比较两个相邻的元素,如果顺序不符合设定的规则就交换过来。
图解冒泡排序原理
来源于百度搜索(很清晰的表达了其原理)
用VBA代码实现冒泡排序
Sub 冒泡排序() '从小到大Dim arr, p, i, k, l, jt = Timer= Range("a1:a12") '需要排序的数据放入数组里For i = 1 To UBound(arr) - 1For k = i + 1 To UBound(arr)If arr(i, 1) > arr(k, 1) Thenp = arr(i, 1)1) = arr(k, 1)1) = pEnd IfNext kNext i= arrMsgBox "用时: " & Format(Timer - t, "0.00秒"), vbInformation, "提示"End Sub
Sub 冒泡排序1() '从大到小Dim arr, p, i, k, l, jt = Timerarr = Range("a1:a12")For i = 1 To UBound(arr) - 1For k = i + 1 To UBound(arr)If arr(i, 1) < arr(k, 1) Thenp = arr(i, 1)1) = arr(k, 1)1) = pEnd IfNext kNext i= arrMsgBox "用时: " & Format(Timer - t, "0.00秒"), vbInformation, "提示"End Sub
实例演示
