【题目】在10万个数字中寻找前100大(top 100)的数字,要求在20万次比较中得到答案。
【提示】像足球比赛的晋级赛一样,我们先举一个8个数据比大小的例子。
如图所示,通过两两比较得到一颗二叉树,1号和2号比较,2号胜出,3号和4号比较,3号胜出.....4次比较后第一轮胜出2,3,5,7号球员。再进行第二轮比较,2号和3号比较,2号胜出,5号和7号比较,7号胜出。再进行下一轮比较,直到得到冠军球员。 就跟NBA季后赛8进4进2进1一样。
如图2号球员(数据)胜出,那么2号得分肯定是最大的。如图所示的树形结构中可以看出,2号是1~8中得分最多的球员,7号是5~8中得分最多的。(注意:7号不一定是第二大