2011年5月4日

如何找出大小为n的数列中第k大的数?

摘要: 前几天面试吹牛说自己很擅长DS,结果被自摆一道,面试官问我如何在大小为n的数列中找出第k大的数?开始觉得不难,胡乱扯了几个方法,觉得很得意,结果回来后一想才发现答的差强人意,我竟然以为桶排序是bestsolution。。。于是开始怀疑自己智商。以后不能把话说的这么满。。。google之,方法列于下:简单的解法比如用quicksort的思想,,从数组S中随机找出一个元素X,把数组分为两部分Sa和Sb。Sa中的元素大于等于X,Sb中元素小于X。这时有两种情况: 1. Sa中元素的个数小于k,则Sb中的第k-|Sa|个元素即为第k大数; 2. Sa中元素的个数大于等于k,则返回Sa中的第k大数。时间 阅读全文

posted @ 2011-05-04 12:08 徐豪 阅读(4181) 评论(0) 推荐(0)

导航