4、快速排序數組
分而治之DC(divide and conquer)(遞歸式問題解決方法):快速排序數據結構
DC原理:less
快速排序:尋找基準值;將數組分紅兩個子數組;對子數組進行快速排序ide
複雜度:O(NlogN)ui
選擇數組第一個元素做爲基準值:spa
快遞排序代碼:code
1 def quicksort(array): 2 if len(array) <2: 3 return array 4 else: 5 pivot = array[0] 6 less = [i for i in array[1:] if i <= pivot] 7 greater = [i for i in array[1:] if i > pivot] 8 return quicksort(less) + [pivot] + quicksort(greater) 9 print(quicksort([10, 5, 2, 3, 7, 13]))
還有一種數組sum求和,利用遞歸來實現??how??blog
//排序
;;;;;;;;;;;;遞歸
//
4、散列表
也是一種數據結構
散列表檢查是否重複速度很是快。
code(用來避免重複):
1 voted = {} 2 def check_voter(name): 3 if voted.get(name): 4 print ("kick them out!") 5 else: 6 voted[name] = True 7 print ("let them vote!") 8 9 check_voter("tom") 10 check_voter("tom")
。