《数据结构教程》_第九章.pptVIP

  • 0
  • 0
  • 约8.3千字
  • 约 57页
  • 2026-07-04 发布于广东
  • 举报

9.4选择排序9.4.2树形选择排序树形选择排序照锦标赛的思想进行。比赛开始,将n个参赛选手看成完全二叉树(或满二叉树)的叶结点,共有2n-1个结点。首先,两两进行比赛(在树中是兄弟的进行,否则轮空,直接进入下一轮),胜出的再兄弟间再两两进行比较,直到产生第一名。接下来,将第一名的结点看成最差的,并从该结点开始,沿该结点到根的路径上,依次进行各分枝结点子女间的比较,胜出的就是第二名。因为和他比赛的均是刚刚输给第一名的选手。如此,继续进行下去,直到所有选手的名次排定。[例9-7]有16个选手参加的比赛,其成绩如图9-5各叶结点的值。下一页返回上一页9.4选择排序在图9-5中,从叶结点开始的兄弟间两两比赛,胜者上升到父结点;胜者兄弟间再两两比赛,直到根结点,产生第一名90。比较次数为23+22+21+20=24-1=n-1。在图9-6中,将第一名的结点置为最差的(设为0),与其兄弟比赛,胜者上升到父结点,胜者兄弟间再比赛,直到根结点,产生第二名86。比较次数为4,即log2n次。其后各结点的名次均是这样产生的,所以,对于n个参赛选手来说,即对n个记录进行树形选择排序,总的关键字比较次数至多为(n-1)log2n+n-1,故时间复杂度为O(nlog2n)。该方法占用空间较多,除了需输出排序结果的n个单元外,还需要n-1个辅助单元。下一页返

文档评论(0)

1亿VIP精品文档

相关文档