标签:
本文介绍一个对5个数进行排序的方法,仅使用7次比较。假设要排序的数为a,b,c,d,e。
首先将a,b进行比较,假设结果为a<b,再将c,d进行比较,假设结果为c<d;然后将两组数的较大者进行比较(即比较b,d),假设结果为b<d,于是就有下面的关系,箭头的关系表示“<”,即"小于",至此,已经进行了三次比较。
,这个图的含义为:a<b<d,c<d
现在将e插入到{a,b,d}的适当位置,采用二分查找法寻找查找位置时,只需要两次比较——先同b比较,然后再同a或d比较。将e插入到{a,b,d}时,一共有下面四中结果:
在这四中情况中,要将c插入到由[abcd]组成的序列中最多只需要两次比较。同样使用二分法寻找插入位置。以第一种情况为例:c首先同a比较,如果大于a,再同b比较,如果大于b,则不会再同d比较,因为我们在之前已经知道c<d。
参考文献:计算机程序设计艺术,第三卷,Page:174
完毕
标签:
原文地址:http://blog.csdn.net/x_i_y_u_e/article/details/45059725