5个数通过6次比较求中位数的方法如下:
5个数之间的大小关系构成的一个树形图T。T中的一个结点代表一个数,而一条边代表它所关联的两个数的大小关系,T的根就是中位数。显然T中的一条边要由一次比赛来确定。在下面的图中,如果x大于y,则节点x在节点y的上方且x和y有一条边相连。另外,*表示一般的数,o表示下一次即将进行比较的两个数。
第1步,先任取两个数比较,结果为:
*
|
* o o *
第2步,再取另外两个数比较,结果为:
o o
| |
* * *
第3步,按照上图比较其中两个标记为o的数,比较结果只有一种情况:
*
/ /
* o
|
* o
第4步,按照上图比较其中两个标记为o的数,比较结果有两种情况:
* o *
/ / / / /
o * o o
| | |
* * *
第5步,按照上图比较其中两个标记为o的数,比较结果有两种情况:
* * *
/ / / / /
/ // / /
| // | /
| / / | *
| / / | | /
|/ /| | /
o o | /
| o o
| |
| |
* *
第6步,按照上图比较其中两个标记为o的数,比较结果有两种情况:
* * * * * *
/ / / / | |
x x * *
| / / | |
* * * x
对手论证法证明中位数问题比较次数下界

本文介绍了利用对手论证法证明求解n个数中位数问题至少需要3(n-1)/2次比较的原理。通过对手策略构造特殊输入,确保算法在最坏情况下进行尽可能多的非关键性比赛,从而得出比较次数的下界。
最低0.47元/天 解锁文章
19

被折叠的 条评论
为什么被折叠?



