从N个数里选M个最大的,快速排序要做多少次

分析:这个问题我之前遇到的時候想到的解决方案是,最小堆解决方法建立个数为的最小堆,然后遍历n维护这个最小堆就可以了算法的时间复杂度是n*log()。还是比较高效的算法的

今天我又发现了一种解决方法,那就是STL里面的一种算法STL里面的nth_eleent就是这样的一种算法。利用类似于快速排序的过程找到前媔的个最大的数字。

不多说了看代码吧。通过代码可以看出和快排基本相似。

//在个数中寻找最大的n个数 //将数组[]中的最大的n(n<)个数放在数組前面
}

我要回帖

更多关于 N/M 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信