当前位置: 首页 > news >正文

南通网站定制方案代理网页打不开

南通网站定制方案,代理网页打不开,中山cms建站,佛山仿站定制模板建站先来看看什么是堆? 堆是一种图的树形结构#xff0c;被用于实现“优先队列”#xff08;priority queues#xff09; 注:优先队列是一种数据结构#xff0c;可以自由添加数据#xff0c;但取出数据时要从最小值开始按顺序取出。 在堆的树形结构中#xff0c…先来看看什么是堆?            堆是一种图的树形结构被用于实现“优先队列”priority queues 注:优先队列是一种数据结构可以自由添加数据但取出数据时要从最小值开始按顺序取出。 在堆的树形结构中各个顶点被称为“结点”node数据就存储在这些结点中堆中的每个结点最多有两个子结点 在堆中存储数据时必须遵守这样一条规则子结点必定大于父结点。因此最小值被存储在顶端的根结点中。从堆中取出数据时取出的是最上面的数据。这样堆中就能始终保持最上面的数据最小。同时由于最上面的数据被取出因此堆的结构也需要重新调整。 01 首先在堆中存储所有的数据并按降序来构建堆。 02 现在所有数据都存进堆里了。为了排序需要再从堆中把数据一个个取出来。注 从降序排列的堆中取出数据时会从最大的数据开始取所以将取出的数据反序输出排序就完成了。 03 首先取出根结点的数字7。 04 重新构造堆。 重构的规则请参考 [数据结构]图解堆结构及其代码实现-CSDN博客 05 同样地取出根结点的数字6将它放在右数第2个位置上。 06 重新构造堆。 07 重复上述操作直到堆变空为止。 08 排序中…… 09 从堆中取出了所有数字排序完成。 解说         堆排序一开始需要将n个数据存进堆里所需时间为Onlogn。排序过程中堆从空堆的状态开始逐渐被数据填满。由于堆的高度小于log2n所以插入1个数据所需要的时间为Ologn。 每轮取出最大的数据并重构堆所需要的时间为Ologn。由于总共有n轮所以重构后排序的时间也是Onlogn。因此整体来看堆排序的时间复杂度为Onlogn。         这样来看堆排序的运行时间比之前讲到的冒泡排序、选择排序、插入排序的时间On2都要短但由于要使用堆这个相对复杂的数据结构所以实现起来也较为困难。         一般来说需要排序的数据都存储在数组中。这次我们使用了堆这种数据结构但实际上这也相当于将堆嵌入到包含了序列的数组中然后在数组中通过交换数据来进行排序。具体来说就是让堆中的各结点和数组像下图这样呈对应关系。正如大家所见这可以说是强行在数组中使用了堆结构。 代码演示 def heapify(arr, n, i):# 初始化最大值的索引为当前节点largest i# 左子节点的索引left 2 * i 1# 右子节点的索引right 2 * i 2# 如果左子节点比当前节点大更新最大值索引if left n and arr[i] arr[left]:largest left# 如果右子节点比当前节点大更新最大值索引if right n and arr[largest] arr[right]:largest right# 如果最大值不是当前节点交换值并递归调整if largest ! i:arr[i], arr[largest] arr[largest], arr[i]heapify(arr, n, largest)def heap_sort(arr):n len(arr)# 构建最大堆Max Heap# 从最后一个非叶子节点开始到根节点逐个进行堆调整for i in range(n // 2 - 1, -1, -1):heapify(arr, n, i)# 逐步取出最大元素并进行堆调整for i in range(n - 1, 0, -1):# 将当前最大值堆顶与未排序部分的最后一个值交换arr[i], arr[0] arr[0], arr[i]# 对剩余元素重新构建最大堆heapify(arr, i, 0)return arrarr [2, 6, 7,8, 9, 4, 10, 3, 5, 1] sorted_arr heap_sort(arr) print(sorted_arr) 结果: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 更详细的可以看这篇文章 [数据结构]图解堆结构及其代码实现-CSDN博客 ​ 文章来源:书籍《我的第一本算法书》 书籍链接: 我的第一本算法书 (豆瓣) (douban.com) 作者宫崎修一 石田保辉 出版社人民邮电出版社 ISBN9787115495242 本篇文章仅用于学习和研究目的不会用于任何商业用途。引用书籍《我的第一本算法书》的内容旨在分享知识和启发思考尊重原著作者宫崎修一和石田保辉的知识产权。如有侵权或者版权纠纷请及时联系作者。 ———————————————— 版权声明本文为博主原创文章遵循 CC 4.0 BY-SA 版权协议转载请附上原文出处链接和本声明。                          原文链接https://blog.csdn.net/jhghuhbb/article/details/139089141
http://www.pierceye.com/news/986791/

相关文章:

  • 洛阳设计网站公司个人网站管理系统
  • 怎么可以预览自己做的网站天津市城乡建设网站
  • 本地网站开发宁夏建设工程招标投标信息网站
  • 网站建设服务费怎么记账维护一个网站一年多少钱
  • 电子商务网站建设定位设想我的网站为什么打不开
  • 旅游网站开发方案ppt移动商城积分和积分区别
  • 如何做网站推广自己的产品WordPress+百度+主动
  • 商丘网站建设推广公司赣州seo唐三
  • 产品网站设计计算机专业做网站运营
  • 做平台网站怎么做的wordpress获取当前分类下的子分类
  • 广州网站建设性价比长安高端装备网站设计公司
  • 电子商务网站推广计划沈阳建设工程造价
  • 网站备案接入商是什么网站语言版本
  • 个人做网站做什么样的话网站站点连接不安全
  • 响应式网站 外贸平顶山 网站设计
  • 手袋 东莞网站建设成都哪里好玩适合情侣
  • 苏州哪个公司做门户网站给学校建网站那个系统好
  • 现在网站都是拿什么软件做的wordpress 自动alt
  • 山东省住房和城乡建设部网站首页网站中的自助报价系统
  • 如何 网站收录软件开发大概需要多少钱
  • 网站建设微信端简洁型网页
  • 一般的网站开发语言用什么《网站开发实践》 实训报告
  • php企业网站开发实验总结服务器
  • 织梦网站文章内容模板荣耀商城
  • seo 网站太小平面设计师招聘广告文案
  • 凡科网站建设桂林网站开发m0773
  • 做跨境都有哪些网站做电影类网站
  • 琼海商城网站建设东莞网站建设价位
  • 装饰网站建设重要性云服务器 多个网站
  • 邯郸市城乡建设管理局网站小米商城wordpress