摘要: 前言:今天早上来实验室,同桌问了我一个问题:找出一个数组里面前K个最大数的高效算法。最近正好在看数据结构和算法相关内容,便以己之力帮她思考了思考。问题:找出一个数组里面前K个最大数。解法:1.第一感觉就是对数组进行降序全排序,然后返回前K个元素,即是需要的K个最大数。排序算法的选择有很多,考虑数组的无序性,可以考虑选择快速排序算法,其平均时间复杂度为O(NLogN)。具体代码实现可以参见相关数据结构与算法书籍。2.观察第一种算法,问题只需要找出一个数组里面前K个最大数,而第一种算法对数组进行全排序,不单单找出了前K个最大数,更找出了前N(N为数组大小)个最大数,显然该算法存在“冗余”,因此基于 阅读全文
posted @ 2011-07-20 09:18 我的IT技术 阅读(2361) 评论(1) 推荐(0) 编辑