# 以 A[r] 的值為基準分割陣列 A 的區間 [l, r]
partition(A, l, r):
    p ← l
    i ← p-1
    for j ← p to r-1:
        if A[j] < A[r]:      # 與基準值做比較
            i ← i+1  
            swap(A[i], A[j]) # 與較大群組最前端的元素互換

    i ← i + 1
    swap(A[i], A[r])         # 將基準值 A[r] 移到較大群組的最前端    
    return i

# 使用此函式對陣列 A 進行分割的範例
q ← partition(A, 0, N-1)