[8, 9, 3, 5] => p=0.33 (= 2/6) 最悪計算量 O(n2) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 [1], [2, 3, 4, 5, 6, 7, 8, 9, 10] => p=0.1 (= 1/10) 5 弱み: quicksort の特定パターンの場合に計算量が大きくなる DIVE INTO Slices Sort ソート済や同じ要素の多い slice は計算量が大きい 左右均等のパーティションに分けると計算量小さい 最悪計算量 O(n2) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 [1], [2, 3, 4, 5, 6, 7, 8, 9, 10] [1], [2], [3, 4, 5, 6, 7, 8, 9, 10] [1], [2], [3], [4, 5, 6, 7, 8, 9, 10] … 平均計算量 O(nlogn) 2, 8, 9, 1, 3, 5 [1, 2], [8, 9, 3, 5] [1], [2], [3, 5, 8], [9] quicksort ピボットパーセンタイル p = 分けた後のピボット位置 / 分ける前の要素数 0 ≦ p ≦ 0.5, 0.5 に近づくほど良い ※左端を固定ピボットとした場合