今天看啥  ›  专栏  ›  程序员小灰

漫画:什么是 “锦标赛排序” ?

程序员小灰  · 公众号  · 程序员  · 2021-03-08 09:15
—————  第二天  —————————————————如图中所示,我们把原本的冠军选手5排除掉,在四分之一决赛和他同一组的选手6就自然获得了直接晋级。接下来的半决赛,选手7打败选手6晋级;在总决赛,选手7打败选手3晋级,成为了新的冠军。因此我们可以判断出,选手7是总体上的亚军。假如给定如下数组,要求从小到大进行升序排列:第一步,我们根据数组建立一颗满二叉树,用于进行“锦标赛式”的多层次比较。数组元素位于二叉树的叶子结点,元素数量不足时,用空结点补齐。第二步,像锦标赛那样,让相邻结点进行两两比较,把数值较小的结点“晋升“到父结点。如此一来,树的根结点一定是值最小的结点,把它复制到原数组的最左侧:第三 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照