| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 2201 人关注过本帖
标题:从数组抽取前5位最大值,并按大小排序
取消只看楼主 加入收藏
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
结帖率:66.67%
收藏
 问题点数:0 回复次数:7 
从数组抽取前5位最大值,并按大小排序
就是说,有个数组有10个元素,然后从中抽出值最大的5个元素,并按大小排好序

大家有什么好的算法没有?
搜索更多相关主题的帖子: 最大值 抽取 
2007-03-26 12:13
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
冒泡是对固定的排序,我要先从10个里抽出5个排序
2007-03-26 12:35
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
随机抽? 我要10个元素排序后的前位

但是如果是先排序后取前5位,好象没优化过
2007-03-26 13:14
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
不好意思,刚才睡着了。刚看到你们的回帖。

首先是猴子的算法,这样做迭代了N次,效率比较低

冒泡的话,是最原始的算法,我说10个中抽5个只是比喻,如果从10亿个中抽5亿个

那如果先冒泡完10亿在抽前5亿个元素,那效率就……
2007-03-26 14:48
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
阿姨的意思,我没懂
2007-03-26 14:54
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
谢谢unicorn的,那个算法仍然是先排序,后取其中前5位的
2007-03-26 14:54
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
以下是引用福尔摩斯在2007-3-26 13:36:54的发言:

觉得好玩,我把这种算法推广到 实数集 吧

按照 最大的5个数字(最小的也一样,5也是可以改的)

首先,先抽取最小数字(正负数都可以,如果抽最小的5个数字,就把最小数字改成最大数字就可以了),然后,在这个数-1,备用

第二步,抽取数组中最大的数字,在它的位子上替换上第一步的那个数字;如此循环做5次,就能得到你要的那5个数字(而且不要冒泡

你个bc,这就是二分法(快速排序)

2007-03-26 15:03
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
谢谢阿姨,那些偶还是知道的。
2007-03-26 18:01
快速回复:从数组抽取前5位最大值,并按大小排序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017562 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved