'快速排序
Sub QuickSort0(MyArray(), L, R)
    Dim I, j, x, y
    I = L
    j = R
    '找出数组的中点
    x = MyArray((L + R) / 2)
    While (I <= j)
        '找出比中点大的数
        While (MyArray(I) < x And I < R)
            I = I + 1
        Wend
        '找出比中点小的数
        While (x < MyArray(j) And j > L)
            j = j - 1
        Wend
        '互换这两个数
        If (I <= j) Then
            y = MyArray(I)
            MyArray(I) = MyArray(j)
            MyArray(j) = y
            I = I + 1
            j = j - 1
        End If
    Wend
    '未完成时递归调用
    If (L < j) Then Call QuickSort(MyArray(), L, j)
    If (I < R) Then Call QuickSort(MyArray(), I, R)
End Sub

Logo

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

更多推荐