6次比较求5个数的中间值,7次比较对5个数排序
6次比较求中间值(a,b,c,d,e)
- 任取两组数,比较,如a>b,c>d —两次
- 再将两组数中的最大值进行比较,假设a>c,得到a>c>d,a>b. —1次
- 由上步比较可知a必定不是中间值,去掉,剩余c>d,b,e. 此时中间值为第2较大者
- b和e比较,如b>e,此时得到c>d和b>e。 —1次
- b和c比较,如b>c,此时得到b>c>d和b>e,去掉b。 —1次
- 剩余c>d和e,e和c比较,较大者则为中间值。 —1次
- 共计需要6次比较

7次比较次数
- 任取两组数比较,如a>b,c>d —2次
- 比较a和c,假设a>c,得到a>c>d和a>b —1次
- 将e插入到a>c>d中,二分法,假设得到a>c>e>d —2次
- 将b插入,因为a>b,故二分法比较两次即可。 —2次
- 总共需要7次
若第三步得到结果为e>a>c>d,则b和c、d分别比较,也是两次