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
投稿

猜你喜欢

  • 通过Python编写一个简单登录功能过程解析

    2022-05-18 23:02:51
  • 秒杀场景的缓存、队列、锁使用Redis优化设计方案

    2023-05-29 19:07:18
  • python使用PIL和matplotlib获取图片像素点并合并解析

    2021-09-07 15:41:45
  • python dict乱码如何解决

    2023-04-11 06:43:51
  • jsp/javascript打印九九乘法表代码

    2024-03-23 02:23:17
  • python 批量添加的button 使用同一点击事件的方法

    2022-10-11 20:13:46
  • php中preg_match的isU代表什么意思

    2024-05-03 15:13:51
  • vue3 使用defineAsyncComponent与component标签实现动态渲染组件思路详解

    2024-05-02 16:32:38
  • 深入探讨opencv图像矫正算法实战

    2022-06-03 16:20:39
  • python实现整数序列求和

    2023-12-14 06:53:10
  • Windows下安装python2.7及科学计算套装

    2023-05-28 13:35:19
  • Python处理键映射值操作详解

    2021-03-21 03:14:53
  • 关于Bootstrap按钮组件消除黄框的方法

    2024-05-03 15:07:04
  • 浅谈python中set使用

    2023-05-31 10:57:41
  • python学生信息管理系统实现代码

    2021-07-01 03:41:18
  • 思考关于搜索框的设计

    2008-12-09 18:17:00
  • 关于网站地图

    2011-01-06 12:14:00
  • vue项目中使用axios遇到的相对路径和绝对路径问题

    2024-05-13 09:37:40
  • PHP/ThinkPHP实现批量打包下载文件的方法示例

    2024-05-11 09:49:00
  • Python内置的字符串处理函数整理

    2023-01-08 19:00:35
  • asp之家 网络编程 m.aspxhome.com