思考题

9-1 已排序的i个最大数

a)合并排序和堆排序,O(nlgn) b)堆排序,O(n+ilgn) c)快速排序,O(n+ilgi)

9-2 带权中位数

b)

使用最坏情况时间为O(nlgn)的排序算法对每个元素进行排序

依次累加元素的权重,直到满足题目中公式

c)

step1:利用SELECT中寻找中值的中值的算法,找到主元

step2:用主元把数组分为三段,即A[1..q-1] < A[q] < A[q+1..r]

step3:计算A[1..q-1]=0.5的权值和,是否满足题目中的公式

step4:若满足,A[q]就是所求的数

step5:若不满足,就继续递归使用本算法进行递归查找。偏大就找前半段,偏小就找后半段

代码见算法导论-9-2-c-带权中位数

邮局位置问题:

关键是d)的结论

9-3 小型顺序统计量

???

Last updated