5个数字用6次比较求出中位数 7次比较排序

设5个数为a,b,c,d,e
先取a、b进行比较, c、d进行比较,假设a>b、c>d(两次比较)。
对a、c进行比较 假设a>c(1次比较)
那么可以得出a不可能是中位数,因为a>c>d a>b
所以现在就是在 b,c,d,e中求一个次大的,且有条件c>d
将b和e进行比较,假设b>e(1次比较)
此时有 b>e 与 c>d
已经进行了四次比较,
将b,c进行比较 假设b>c(1次比较)
那么有 b>c>d
在将e与c进行比较 e,c中的较大值变为次大的。

至于7次比较排序就稍微简单点了
先取a、b进行比较, c、d进行比较,假设a>b、c>d(两次比较)。
对a、c进行比较 假设a>c(1次比较)
那么可以得出a不可能是中位数,因为a>c>d a>b
此时一共用去三次比较
将e加入到a,c,d序列中用二分法只需要两次
此时一共花去5次比较
可以得出下列四种情况
1,e>a>c>d
2,a>e>c>d
3,a>c>e>d
4,a>c>d>e
还有一个附加的条件就是a>b
那么完全可以用两次比较讲b插入到上面四种排好序的序列中去了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值