快速排序 quick sort

快速排序法如其名是一個快速的排序方法,其排序的方法是:

  1. 在數列中選定一個基數
  2. 以此基數為基準,將數列中比此數大的放在右邊,比此數小的放左邊
  3. 再將左右兩邊的數列重複步驟 2 的動作,直到剩下一個數字即完成排序

Python 的程式碼如下

#快速排序
#https://www.george.tw

unsort = [77, 88, 44, 33, 22, 99, 66, 55, 11]

def quicksort(unsort, left, right): 
    if left >= right :            
        return

    i = left                      
    j = right                     
    key = unsort[left]                 

    while i != j:                  
        while unsort[j] > key and i < j:   
            
            j -= 1
            
        while unsort[i] <= key and i < j:  
            
            i += 1

        if i < j:                        
            unsort[i], unsort[j] = unsort[j], unsort[i]
    
         

    
    unsort[left],unsort[i] = unsort[i],unsort[left]
    quicksort(unsort, left, i-1)   
    quicksort(unsort, j+1, right)
    
print(unsort)
quicksort(unsort, 0, len(unsort)-1)
print(unsort)

程式碼 : Github 

發表迴響