Python 选择排序中的树形选择排序

作者:李欣容 时间:2023-06-10 04:33:32 

1、引言

选择排序里面主要讲了三个排序,分别是简单选择排序、树形选择排序、堆排序。今天这篇文章主要讲树形选择排序,树形选择排序也被称为锦标赛排序,树形选择排序运用了锦标赛的思想进行排序,树形选择排序是指首先对n个记录的关键字进行两两比较,然后在n/2个较小者之间再进行两两比较,如此重复,直至选出最小的记录为止。

2、问题描述

给定一个序列,我们将如何用树形选择排序来将它排序呢,下面将结合图形和文字一起讲述。

示例1:对数据表A=(73,45,79,90,81,75,94,97)进行排序

输出:45 73 75 79 81 90 94 97

3、解决方案

数据表A是乱序的,现在需要将它按照从小到大的顺序排序好,根据树形选择排序的思想首先需要将比较的记录全部作为叶子,然后按照从左到右的顺序,两两进行比较,选出最小的那个,然后将比较后的n/2个元素又按照从左到右的顺序两两进行比较,选出最小的,一直重复这样操作后,会从底向上形成一个完全二叉树。可能读完这段文字还是不好理解,下面我将用图示来具体描述。

Python 选择排序中的树形选择排序

1.构建二叉树:图1是数据表A构成的二叉树,首先直接将数据表A的数据直接放在最下面,也就是二叉树的叶子;然后从左到右两两进行比较,例如73和45比较后选出最小的45,79和90比较后选出最小的79,将选出的45和79比较选出最小的45,一直这样重复操作,直到构成一个完整的二叉树。

Python 选择排序中的树形选择排序

2. 如何输出正确顺序:根据图1可以知道根节点是45,也就是最小的。图2就是把第一遍找出来的45用无穷符号代替,然后又两两比较,直到根节点变为最小的,通过图1和图2对比可以看出第一遍找到的最小的是45,第二遍是73,,现在又将找出来的73用无穷符号代替,又重复上面的操作,直到对所有数据排完序。如下图所示

Python 选择排序中的树形选择排序

4、结语

树形选择排序还是比较好理解,图和文字结合就比较容易结合。

标签:Python,选择排序,树形排序
0
投稿

猜你喜欢

  • SQL Server 2005日志文件损坏的处理方法

    2008-12-02 14:36:00
  • Python实现小数转化为百分数的格式化输出方法示例

    2023-07-15 05:58:15
  • python基础之定义类和对象详解

    2023-06-15 05:35:12
  • 简单form标准化实例——整体布局

    2007-05-11 17:04:00
  • asp如何编写一个DNS LOOKUP程序?

    2009-11-07 18:47:00
  • IE bug: 消失的绝对定位元素

    2009-10-26 17:59:00
  • python实现监控指定进程的cpu和内存使用率

    2023-08-23 02:21:17
  • Python与数据库的交互问题小结

    2021-11-14 11:46:47
  • ASP.NET教程第二讲:安装ASP.NET

    2007-08-07 11:59:00
  • sql 常用技巧整理

    2011-11-03 17:10:14
  • asp实现ACCESS数据库加密方法

    2008-04-18 12:33:00
  • layui table 获取分页 limit的方法

    2023-08-24 13:44:56
  • 模拟兼容性的 addDOMLoadEvent 事件

    2009-07-31 12:37:00
  • Pandas 缺失数据处理的实现

    2023-07-14 05:57:38
  • 不要放弃使用CSS中的新技术

    2009-05-15 12:49:00
  • 简单的asp采集代码教程

    2011-04-18 10:39:00
  • 用ASP打开远端MDB数据库

    2007-10-13 06:56:00
  • Iinternet Explorer浏览器简介(IE)

    2009-02-05 20:59:00
  • 浅析php header 跳转

    2023-10-15 04:18:34
  • python selenium UI自动化解决验证码的4种方法

    2022-10-09 20:43:06
  • asp之家 网络编程 m.aspxhome.com