分治算法:线性时间选择第k大小的数字 && STL函数:nth_element()
(一)手动实现线性时间选择第i大小数字的算法和快速排序类似,选择第k大小的数字可以用分治算法来解决。令函数 int f(int a[], int s, int e, int i) 表示 a[s]......a[e] 这一段序列中的第 i 大小的数字。该怎么实现这个函数呢?如果我们调用快速排序中的选择主元函数 select 找到一个主元 a[m](下标为m的元素)。那么主元在 a[s].
原创
2017-04-17 21:31:41 ·
2163 阅读 ·
0 评论