这个题目是非常经典的一个题目,解法也有很多,现在就把我已经理解的解法记录下来. 题目描述 有n个无序的数,它们各不相等,怎样选出其中的最大的k个数呢? 题目分析: 解法1: 最容易想到的就是把n个数进行排序,然后选择最大的k个数.排序算法很多,快速排序和堆排序都是不错的选择,他们的复杂度都是Ο(n*log2n),然后取出前k个Ο(k),总的时间复杂度可以看成是Ο(n*log2n) 在这个解法中,对n个数进行了排序,如果n的数值非常大的话,会很慢. 解法2: 能不能只遍历一边n个数就能把最大的k个…