java 3个数字排序的问题

nzams 2009-08-12 07:05:23
新手提问
3个数字按大小排序 只能用Math.min和Math.max 怎么能求出中间大小的数?
...全文
240 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
nzams 2009-08-13
[Quote=引用 6 楼 sbwwkmyd 的回复:]
引用 5 楼 nzams 的回复:
引用 3 楼 sbwwkmyd 的回复:
max(min(max(a,b),c),min(max(b,c),a))
如果是4个数呢?  同样的条件有没有办法求解?

A=min(max(a,b),max(c,d))
B=min(max(a,c),max(b,d))
C=min(max(a,d),max(b,c))
这三个组合都能排除掉最大数与最小数,而且结果中一定有第二大数与第三大数.
第二大数=max(max(A,B),C)
第三大数=min(min(A,B),C)
[/Quote]

qiang xie xie
回复
showjim 2009-08-13
[Quote=引用 5 楼 nzams 的回复:]
引用 3 楼 sbwwkmyd 的回复:
max(min(max(a,b),c),min(max(b,c),a))
如果是4个数呢?  同样的条件有没有办法求解?
[/Quote]
A=min(max(a,b),max(c,d))
B=min(max(a,c),max(b,d))
C=min(max(a,d),max(b,c))
这三个组合都能排除掉最大数与最小数,而且结果中一定有第二大数与第三大数.
第二大数=max(max(A,B),C)
第三大数=min(min(A,B),C)
回复
nzams 2009-08-13
[Quote=引用 3 楼 sbwwkmyd 的回复:]
max(min(max(a,b),c),min(max(b,c),a))
[/Quote]如果是4个数呢? 同样的条件有没有办法求解?
回复
nzams 2009-08-13
[Quote=引用 3 楼 sbwwkmyd 的回复:]
max(min(max(a,b),c),min(max(b,c),a))
[/Quote] 高手 我转了半天max min都没倒出来……
回复
showjim 2009-08-12
max(min(max(a,b),c),min(max(b,c),a))
回复
wangchao6656 2009-08-12
找出最大的数,再找出最小的数,排除后,剩下的不就是中间大小的那个数了~
回复
-空军- 2009-08-12
中间数 = a > b ? (b > c ? b : c > a ? a : c) : (a > c ? a : c > b ? b : c);
回复
发动态
发帖子
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
社区公告
暂无公告