算法圖解第四章快速排序學習筆記

  1. 分而治之(divide & conquer,D&C) 一種著名的遞歸式問題解決方法
  2. 使用D&C解決問題的過程包括兩個步驟: 1) 找出基線條件,這種條件必須儘可能簡單; 2)不斷將問題分解(或者說縮小規模),直到符合基線條件
  3. 將長1680M寬640M的土地均勻的分成方塊,且分出的方塊要儘可能大.
  4. 思考:  適用於這小塊地的最大方塊,也是適用於整塊地的最大方塊  (參閱歐幾里得算法 )
  5. 快速排序算法
  6. def quicksort(array):
        if len(array) < 2:
            return array
        else:
            pivot = array[0]
            less = [i for i in array[1:] if i <= pivot]
            greater = [i for i in array[1:] if i > pivot]
            return quicksort(less) + [pivot] + quicksort(greater)
    print(quicksort([10, 5, 2, 3]))
    print([i for i in range(10)])

     

  7. 快速排序的平均運行時間O(nlogn).

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章