Skip to content

Instantly share code, notes, and snippets.

@sunsongxp
Created April 9, 2021 17:46
Show Gist options
  • Save sunsongxp/9e48bedca6862472f4a8cfedd5bd99b6 to your computer and use it in GitHub Desktop.
Save sunsongxp/9e48bedca6862472f4a8cfedd5bd99b6 to your computer and use it in GitHub Desktop.

Revisions

  1. sunsongxp created this gist Apr 9, 2021.
    35 changes: 35 additions & 0 deletions quicksort.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,35 @@
    #!/usr/bin/python3

    # Quick Sort 快速排序
    # 基于《算法导论》第七章

    import random

    A = []
    for i in range(1000000):
    A.append(random.randint(0, 999999))

    def parition(A, p, r):
    pivot = A[r]
    i = p - 1

    for q in range(p, r):
    if A[q] < pivot:
    i += 1
    tmp = A[i]
    A[i] = A[q]
    A[q] = tmp

    tmp = A[i+1]
    A[i+1] = A[r]
    A[r] = tmp

    return i+1

    def quicksort(A, p, r):
    if p < r:
    q = parition(A, p, r)
    quicksort(A, p, q-1)
    quicksort(A, q+1, r)

    quicksort(A, 0, len(A)-1)