vlambda博客
学习文章列表

如何用VBA实现冒泡排序?




何为冒泡排序

    冒泡排序(Bubblesort)以其"在排序过程中相邻元素不断交换,一些元素慢慢被换到最后,看起来就像是元素在冒泡一样,因此而得名"。


    原理:重复的走访需要排序的元素列,依次比较两个相邻的元素,如果顺序不符合设定的规则就交换过来。



图解冒泡排序原理

如何用VBA实现冒泡排序?

来源于百度搜索(很清晰的表达了其原理)


如何用VBA实现冒泡排序?


用VBA代码实现冒泡排序

Sub 冒泡排序() '从小到大Dim arr, p, i, k, l, jt = Timerarr = Range("a1:a12")       '需要排序的数据放入数组里For i = 1 To UBound(arr) - 1 For k = i + 1 To UBound(arr) If arr(i, 1) > arr(k, 1) Then p = arr(i, 1) arr(i, 1) = arr(k, 1) arr(k, 1) = p End If Next kNext iRange("c1").Resize(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) - 1 For k = i + 1 To UBound(arr) If arr(i, 1) < arr(k, 1) Then p = arr(i, 1) arr(i, 1) = arr(k, 1) arr(k, 1) = p End If Next kNext iRange("e1").Resize(i) = arrMsgBox "用时: " & Format(Timer - t, "0.00秒"), vbInformation, "提示"End Sub


如何用VBA实现冒泡排序?


实例演示