【思考】
9-1 已排序的i个最大数
给定一个含n个元素的集合,我们希望能用一个基于比较的算法来找出按顺序排列的i个最大元素。
请找出能实现下列每一种方法的、具有最佳的渐进最坏运行时间的算法,并分析各种方法的运行时间(用n和i表示)。
a) 对输入数排序,并列出i个最大的数。
O(nlogn)的排序。
b) 对输入数建立一个优先级队列,并调用EXTRACT-MAX过程i次。
建堆O(n),每次调用O(logn),共O(n+ilogn)
c) 利用一个顺序统计量算法来找到第i个最大元素,然后划分输入数组,再对i个最大数排序。
寻找第i大元素O(n),排序O(ilogi),共O(n+ilogi)
9-2 带权中位数
对分别具有正的权重w1, w2, ... , wn且的n个不同元素x1, x2, ..., xn,带权(下)中位数是满足如下条件的元素xk
a) 论证x1, x2, ..., xn 的中位数即各xi的带权中位数,此处权值 wi=1/n, i=1,2 ..., n。
将wi=1/n带入得