现在的位置: 首页 > 综合 > 正文

找第k大(小)的数

2013年10月21日 ⁄ 综合 ⁄ 共 218字 ⁄ 字号 评论关闭

原帖地址:http://bbs.sjtu.edu.cn/bbstcon?board=Algorithm&reid=1187310487

方法很巧妙。找一个标杆然后快排,快排后标杆把数组分成了两种,小于标杆的,大于标杆的,此外,标杆就恰好站在了它应该排列的位置上。

如果标杆的下标恰是第K个,那么显然标杆就是答案,若不是则:

若标杆下标大于K,就在标杆前面的部分找,反之,在标杆后面的部分找。

我戏称这种算法叫砍一刀算法,每次把数组都砍一刀变小。

抱歉!评论已关闭.