zoukankan      html  css  js  c++  java
  • (11)选择排序之二 树形选择排序

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

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

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

  • 相关阅读:
    CentOS7 Python2.7.5升级3.7.1
    kubernets 集群和本地环境联调环境打通工具kt-connect
    Python学习指南
    Python爬虫(十九)_动态HTML介绍
    Python爬虫(十八)_多线程糗事百科案例
    Python爬虫(十七)_糗事百科案例
    Python爬虫(十六)_JSON模块与JsonPath
    python爬虫基本原理及入门
    Python操作数据库
    Python解析xml
  • 原文地址:https://www.cnblogs.com/wanggary/p/2036923.html
Copyright © 2011-2022 走看看