第三周要点:
1. quick sort(快速排序O(Nlog(N))
input: a array,unsorted
output: Same numbers sorted in increasing order
algorithm:
pseudocode for partition
the importance of choosing pivot:
worst O ( N 2 ) O(N^2) O(N2) 例子: 一个y已经排好序的数组 每次只减少了一个元素
best: : O ( N l o g ( N ) ) O(Nlog(N)) O(Nlog(N)) 例子: 每次的pivot元素都选到了中间。
而quick_sort 基本上可以达到 O ( N ∗ l o g ( N ) ) O(N*log(N)) O(N∗log(N))的复杂度
2. 证明:
can’t apply master method
decomposition method
general decomposition principle
更详细证明见课程:https://www.coursera.org/learn/algorithms-divide-conquer/exam/h06aN/problem-set-3
3. 习题解释
每个数组都有n个元素,要使小的那个数组的长度比 α n \alpha n αn大,那么快速排序中所要选择的那个pivot 元素x一定要满足
α n + 1 < = x < = n − α n \alpha n +1<=x<=n-\alpha n αn+1<=x<=