从一组数据中寻找第K大的数
问题描述:给出一组数据,如:整型数组 int a[]={10,1,3,6,9,39,20,12,33,54} 用尽可能快的方法找出第K大的位置(如:k=5时即第5大的数据应为12)。分析问题:首先,如果求解问题是需要从一组数据寻找最值时(最大值或者最小值时)可能比较方便,一般作法是先排序,然后最首或者尾位置即可。但现在需要求解的不一定是指最值,而是求第K大最值。那么同样处理思路是分步,即先排序然后求对应K位置。经过简单的分析,下面给出Demo(C语言)//下面为排序设计两个函数int partition(const int * na, int low, int hight);//标注位置int
a56爆大奖在线娱乐来自博客园,作者:陈国利,转载请注明原文链接:/cgli/archive/2010/10/22/1858472.html
a56爆大奖在线娱乐版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
如果您觉得文章对您有帮助,可以点击文章右下角"推荐"或关注本人博客。您的鼓励是作者坚持原创和持续写作的最大动力!