Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

Access冒泡排序示例

时 间:2022-10-28 08:03:28
作 者:欧志华   ID:51519  城市:广州
摘 要:冒泡排序。
正 文:

      冒泡排序(Bubble Sort)就是依次比较相邻两个元素,将小数放在前面,大数放在后面。即数列中的第1个元素与第2个元素进行比较,将小数放前,大数放后,然后比较第2个元素和第3个元素,将小数放前,大数放后,如此继续,直至比较最后两个数。这样经过第一次排序之后,此时数列中最大的数将被排在最后的位置(即所谓的沉底)。然后进行第二次排序,比较第1个元素和第2个元素,将小数放前,大数放后,然后比较第2个元素和第3个元素,将小数放前,大数放后。如此继续,直至比较到最后一个数的前边两个相邻的数,第二次排序结束,此时在倒数第二个元素的位置上得到了数列中第二大的数。如此下去,直至最终完成排序。


代码如下:

Private Sub Command5_Click()
    Dim i As Integer
    Dim j As Integer
    Dim arr() As String     '定义数组
    Dim t As Integer        '用于展示数组元素
    Dim tmp As String       '调整数组元素位置临时容器
  
    arr() = Split(Me.Text0, ",")
    Me.Text2 = ""
    Me.Text2 = Me.Text2 & "[初始数组元素]: "
    For t = 0 To UBound(arr)
        Me.Text2 = Me.Text2 & arr(t) & " "
    Next t
    Me.Text2 = Me.Text2 & vbCrLf & vbCrLf
    
    For i = 0 To UBound(arr) - 1
        For j = 0 To UBound(arr) - i - 1
            '如果前一位的数值大于后一位的数值
            '条件成立, 则前后数字对调位置
            If Val(arr(j)) > Val(arr(j + 1)) Then
                tmp = arr(j)    '把前一位数值赋值tmp变量
                arr(j) = arr(j + 1)
                arr(j + 1) = tmp
            End If
        Next j
        '显示第几次排序结果
        Me.Text2 = Me.Text2 & i + 1 & "次排序结果:  "
        For t = 0 To UBound(arr)
            Me.Text2 = Me.Text2 & arr(t) & " "
        Next t
        Me.Text2 = Me.Text2 & vbCrLf
    Next i
End Sub


示   例:

点击下载此附件


图   示:

点击图片查看大图



Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助