'冒泡排序
Sub BubbleSort0(MyArray(), Optional ByVal SortByDesc As Boolean)
    Dim Index
    Dim temp
    Dim NextElement
    '先将已处理的元素个数置为0
    NextElement = 0
    '遍历每一个元素
    Do While (NextElement < UBound(MyArray))
        '读取当前最大下标
        Index = UBound(MyArray)
        '与前面的每一个元素比较
        Do While (Index > NextElement)
            '根据是升序或降序进行分别处理
            If SortByDesc = False Then
                '升序:如果当前值小于上一个值,则互换
                If MyArray(Index) < MyArray(Index - 1) Then
                    temp = MyArray(Index)
                    MyArray(Index) = MyArray(Index - 1)
                    MyArray(Index - 1) = temp
                End If
            ElseIf SortByDesc = True Then
                '降序:如果当前值大于上一个值,则互换
                If MyArray(Index) > MyArray(Index - 1) Then
                    temp = MyArray(Index)
                    MyArray(Index) = MyArray(Index - 1)
                    MyArray(Index - 1) = temp
                End If
            End If
            '将当前下标移到上一个值
            Index = Index - 1
        Loop
        '将已处理的元素个数加1
        NextElement = NextElement + 1
    Loop
End Sub

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐