社区
C语言
帖子详情
一个面试题
purples
2004-07-23 12:51:20
25匹马,每次捡5匹跑,几次可找出最快的5匹马?
...全文
1010
32
打赏
收藏
一个面试题
25匹马,每次捡5匹跑,几次可找出最快的5匹马?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
32 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sunjueqian
2004-07-24
打赏
举报
回复
啊!顿悟了,刚才是我没看懂,呵呵,不好意思打扰了
sunjueqian
2004-07-24
打赏
举报
回复
Passants兄的算法好像有漏洞啊
第六次次跑过以后,交换了马匹的组,这时候出现了问题,
以第二组为例,B1可能是交换过来的,就不见得是第二组最快的了,这个时候再进行比赛就无法保证,参赛的仍然是每一组最快的了,如果想要保证这一点,需要每一组再重新跑,这样似乎就做了无用功。不知道楼上的几位,所说的“跑一次”是指五组每组各跑一次才算一次,还是指一组次算一次呢?如果是后者,恐怕方法还要斟酌一下。
或者是我的理解有问题,还请高人指点迷津
bidongliang_2000
2004-07-24
打赏
举报
回复
五次,分成五组跑,记录25匹马的速度,排序。
banbool
2004-07-24
打赏
举报
回复
前面的各位真是非常的理性,根本不考虑马的死活,刚比完一场马上就比另一场,就是千里马也要给活活累死,何况还要应付动物保护协会的投诉!
pdcc
2004-07-24
打赏
举报
回复
从题目设计思路来看系统只提供一个处理过程。这个过程描述如下
假设:每匹马的速度在每次比赛过程中不变,同时这个速度不可见。
输入参数:五匹马的列表
处理过程:进行一次比赛
返回值:比赛结果(按照速度快慢排序的五匹马的列表)。
我们现在要求25匹马中跑得最快那五匹,其实就是要求25个数中最大那五个的问题。我们可以看到系统提供的处理其实是一个对五个数进行排序的过程,这就很符合使用5路归并排序。
第一轮归并,可以通过调用五次比赛过程来完成, 得到五个有续序列。
第二轮归并,就不可以仅调用五次比赛过程来完成了。 但有幸的是我们仅需要知道排序后的前五个数。所以五次比赛过程足够得出这五个数
这时候的过程其实跟楼上Passants(路过) 所述一致了。
结果是10次!
volttsky
2004-07-24
打赏
举报
回复
10次的算法不是最少次数的~最少应该跑6次出结果同时可以做到最多应该10次出结果~但是如果光考虑次数的因数,实际加大了算法实现的难度,程序的开销要大很多~
sandlovefree
2004-07-23
打赏
举报
回复
我想让我做,我就分五组,让他们同时在同一起跑线上开妈跑,一次就可以看出来了。
mynamelj
2004-07-23
打赏
举报
回复
谁能用代码描述出来?
sandlovefree
2004-07-23
打赏
举报
回复
我想让我做,我就分五组,让他们同时在同一起跑线上跑,一次就可以看出来了。
梦想成了相扑
2004-07-23
打赏
举报
回复
真是佩服发明的计时器的人啊!!
yifanlxj
2004-07-23
打赏
举报
回复
应该是冒泡排序的一种:
先进行分组排序,然后怎么做记不清了,那是上大不时C语言上的一道题。
Passants
2004-07-23
打赏
举报
回复
回复人: BroncoSpeedCoursing() ( )
一次就可以比较出来,哈哈。
=====================================================
天才,甘拜下风。
BroncoSpeedCoursing
2004-07-23
打赏
举报
回复
回复人: Passants(路过) ( ) 信誉:100 2004-07-23 13:49:00 得分: 0 楼上的,那让你自己取的话,最快几次呢?
=====================================================
一次就可以比较出来,哈哈。
Passants
2004-07-23
打赏
举报
回复
先分5组
五次赛马后的每组排序如下:
A1 B1 C1 D1 E1
A2 B2 C2 D2 E2
A3 B3 C3 D3 E3
A4 B4 C4 D4 E4
A5 B5 C5 D5 E5
再A1 B1 C1 D1 E1比赛,选出最快的,假设为A1。
再A2 B1 C1 D1 E1比赛,选出第二快的,假设B1。
再A2 B2 C1 D1 E1比赛,选出第三快的……
以此类推
意思就是,后面每次比赛都是每组中最快的那匹参加。
这样的话就是10次。
zhouqingyuan
2004-07-23
打赏
举报
回复
先随便5组跑得A1,B1,C1,D1,E1
然后这5个跑假设最快为A1,
则接下来让A2,B1,C1,D1,E1跑,依次类推,可得
zhouqingyuan
2004-07-23
打赏
举报
回复
的确,最多需要10次就够了!
nobush
2004-07-23
打赏
举报
回复
楼上这么快?
我也认为是10。
purples
2004-07-23
打赏
举报
回复
10怎么出来的?大哥?
sasdaa
2004-07-23
打赏
举报
回复
10
dragoonj
2004-07-23
打赏
举报
回复
5+5
加载更多回复(12)
最全的IT公司
面试题
集 CHM版的
Java
面试题
,J2EE
面试题
,.net
面试题
,PHP
面试题
,数据库
面试题
,英语面试,外企面试,软件测试
面试题
,Python
面试题
,Oracle
面试题
,MySql
面试题
,Web开发
面试题
,Unix
面试题
,程序员面试,网络技术
面试题
,网络安全
面试题
,Linux...
2014年最新JAVA
面试题
汇总经典例子及其答案
最新JAVA
面试题
汇总经典例子及其答案。
Linux运维中级
面试题
知名公司的Linux运维中级
面试题
,部分提供了答案,可以测试自己功力!
linux面试笔试题大全
linux面试笔试题大全,很详细的资料 一.填空题: 1. 在Linux系统中,以 文件 方式访问设备 。 2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。 3. Linux文件系统中每个文件用 i节点 来标识。
C/C++程序设计员应聘常见面试试题深入剖析
C/C++程序设计员应聘常见面试试题深入剖析,不看会后悔!!!!!!!!!
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章