设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插入到上面四种排好序的序列中去了。
先取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插入到上面四种排好序的序列中去了。