美文网首页
快速排序

快速排序

作者: 弓长_88c0 | 来源:发表于2019-10-05 17:26 被阅读0次

    只能针对整数排序

    ```

    Public SubQSort2(ByRef key_arr()AsLong, LAsLong, RAsLong)

    Dim i As Long, j As Long

    Dim x AsLong, Swap As Long

    Const k As Long = 60

    If R - L <= k Then

    For i = L +1 To R

                x = key_arr(i)

    For j = i -1 To LStep-1

    If key_arr(j) <= x Then Exit For

    key_arr(j +1) = key_arr(j)

    Next

    key_arr(j +1) = x

    Next

    Else

    x = key_arr((L + R) \2)

            i = L

            j = R

    Do Whilei <= j

    Do Whilekey_arr(i) < x

    i = i +1

    Loop

    Do While key_arr(j) > x

    j = j -1

    Loop

    If i <= j Then

                    Swap = key_arr(i)

                    key_arr(i) = key_arr(j)

                    key_arr(j) = Swap

    i = i +1

    j = j -1

    End If

    Loop

    '递归方法

    If L < j Then

    Do While key_arr(j) = x

    j = j -1

    If j = L Then Exit Do

    Loop

    Call QSort2(key_arr, L, j)

    End If

    If i < R Then

    Do While key_arr(i) = x

    i = i +1

    If i = R Then Exit Do

    Loop

    Call QSort2(key_arr, i, R)

    End If

    End If

    End Sub

    ```

    相关文章

      网友评论

          本文标题:快速排序

          本文链接:https://www.haomeiwen.com/subject/bigepctx.html