如何用VBA实现冒泡排序?

Posted 肥嘟嘟的大笨熊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用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实现冒泡排序?


实例演示




                                                                                                          

以上是关于如何用VBA实现冒泡排序?的主要内容,如果未能解决你的问题,请参考以下文章

VBA: 冒泡排序法的代码实现

C++:冒泡排序

如何用java代码实现在一个已排列好的数组中找出小于等于给定x的位数下标(用二分查找做)?

Java SE如何用Java实现直接选择排序

特么,冒泡排序有这么难?

No.48 详细解释VB冒泡排序,具体到每一句代码。