• (11)选择排序之二 树形选择排序


          树形选择排序(Tree Selection Sort),又称锦标赛排序(Tournament Sort),是一种按锦标赛的思想进行选择排序的方法。时间复杂度为O(nlog2n)理解:两两比较,选出第一个最小值,将原来的叶子节点设置为∞,进行同样的两两比较,既可选出第二个最小值,如此往复。缺点:占用的辅助存储空间较多,和“∞”进行多余的比较等。为了弥补这些缺点J.willioms提出了另一种形式的选择排序——堆排序。

          首先将待排序记录两两分组,将每组的最小值设置为他们的父结点,把所有这些筛选出来的父结点再两两分组,选出每组的最小值并设置为这组的父结点。一层一层筛选,直到选出根结点,就是最小值了,然后将其对应的叶结点设置为∞。

          中心思想类似于锦标赛,先分组然后层层选拨,将每次选拨出来的根结点的值单独记录下来。然后把之前选拨出来的值,设置为∞(无穷大)。那么再次比较时,之前选拨出来的值已经变成无穷大了,自然会被忽略。但有一个问题就是每一次选拨都会重新进行比较。和“∞”进行的多余的比较太多,而且占用过多的辅助存储空间。借助树形选择排序的思想,理解堆排序就会更容易一些。

  • 相关阅读:
    Win32中精确计时器(微秒级)
    一个封装文件操作和目录操作的类
    CString
    两个经典的RGB与YUV转换函数
    C++文件流
    HSI、HSV、RGB、CMY、CMYK、HSL、HSB、Ycc、XYZ、Lab、YUV颜色模型
    MPEG4与H264区别,编码及应用
    C file文件基本知识
    RGB ,YUV, YCbCr的定义
    在android平台上测试C/C++程序及库
  • 原文地址:https://www.cnblogs.com/wanggary/p/2036923.html
Copyright © 2020-2023  润新知