摘要:
题目:对一个含有n个元素的集合来说,所谓k分位数(the kth quantile),就是能把已排序的集合分成k个大小相等的集合的k-1个顺序统计量。给出一个能列出某一集合的k分位数的O(nlgk)时间的算法思考:令每个子集合的元素个数为t = n / k,A[j]是数组A中下标为j的元素,A(j)是数组是第j大的元素则所求的k分位数是指A(t),A(2t),A(3t),……,A((k-1)t)按顺序依次求这k-1个数的运行时(k-1)*n要使运行时间为O(nlgk),改进方法是不要依次寻找这k-1个数,而是借用二分的方法来找。先找第k/2个分位数,再以这个分位数为主元把数组分为两段,分别对这 阅读全文
posted @ 2012-06-25 14:00
windmissing
阅读(1079)
评论(0)
推荐(0)