问答题 对一个由n个关键字不同的记录构成的序列,能否用比2n一3少的次数选出该序列中关键字取最大值和关键字取最小值的记录?请说明如何实现?在最坏的情况下至少进行多少次比较?【东南大学2000一、5(8分)】
【正确答案】正确答案:本题答案之一请参见第9章的四、8题,这里用分治法求解再给出另一参考答案。对于两个数x和y,经一次比较可得到最大值和最小值;对于三个数x、y、z,最多经3次比较可得最大值和最小值;对于n(n>3)个数,将分成长为n一2和2的前后两部分A和B,分别找出最大者和最小者:MaXA、MinA、MaxB、MinB,最后Max={MaXA,MaxB)和Min={MinA,MinB)。对A使用同样的方法求出最大值和最小值,直到元素个数不超过3。设C(n)是所需的最多比较次数,根据上述原则,当n>3时有如下关系式:
【答案解析】