查看: 24  |  回复: 0
  VBA代码 排序算法
楼主
发表于 2025年3月18日 15:01
Sub QuickSort(tr, l&, u&)
    'http://club.excelhome.net/forum.php?mod=redirect&goto=findpost&ptid=961205&pid=7825303
    '香川群子改进快速排序算法
    Dim i&, j&, x, t
    x = tr(l): i = l + 1: j = u
    Do
        Do While i < u
            If tr(i) > x Then Exit Do Else i = i + 1
        Loop
        Do While j > l
            If tr(j) < x Then Exit Do Else j = j - 1
        Loop
        If i < j Then t = tr(i): tr(i) = tr(j): tr(j) = t Else Exit Do
    Loop
    If j > l Then t = tr(l): tr(l) = tr(j): tr(j) = t: Call QuickSort(tr, l, j)
    If j + 1 < u Then Call QuickSort(tr, j + 1, u)
End Sub


您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2025 MaNongKu.com