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

网站建设广金手指排名最近一周的时政热点新闻

网站建设广金手指排名,最近一周的时政热点新闻,手机网站建设视频教程、,国外专门做杂志的共享网站文章目录 堆排序二叉树堆堆排序的过程:代码实现python中的heapq模块 堆排序 二叉树 关于二叉树的操作,其实核心就是 父节点找子节点,子节点找父节点 如果要将二叉树存储到队列中,就需要找出 父子节点之间的规律: 父…

文章目录

      • 堆排序
        • 二叉树
        • 堆排序的过程:
        • 代码实现
        • python中的heapq模块

堆排序

二叉树

关于二叉树的操作,其实核心就是 父节点找子节点,子节点找父节点

如果要将二叉树存储到队列中,就需要找出 父子节点之间的规律:

  • 父找子: 2i+1(父与左) ,2i+2(父与右)
  • 子找父:(i-1)//2

在这里插入图片描述

完全二叉树

在这里插入图片描述

在这里插入图片描述

构造堆:从最后一个非叶子节点开始调整

堆排序的过程:

在这里插入图片描述

代码实现
"""
堆排序
""""""
时间复杂度 :               O(N*logN)
每次调整的时候:要么走左边要么走右边,每次只会走一个树的高度(logN)
"""def sift(li, low, high):"""调整函数,无论是构建堆还是移动堆都需要这个调整函数:param low: 根节点:param high: 堆最后一个元素的位置:return:""""""1. 先把根节点拿出来2. 比较左右节点大小,选择替换3. 将拿出来的根节点放到合适位置"""i = low  # i最开始指向根节点j = 2 * i + 1  # j开始是左孩子tmp = li[low]  # 把堆顶存起来while j <= high:  # 只要j位置有数if j + 1 <= high and li[j + 1] > li[j]:  # 如果右孩子有并且比较大j = j + 1  # j指向右孩子if li[j] > tmp:li[i] = li[j]i = j  # 往下看一层j = 2 * i + 1else:  # tmp更大,把tmp放到i的位置上li[i] = tmp  # 把tmp放到某一级领导位置上breakelse:li[i] = tmp  # 把tmp放到叶子节点上def heap_sort(li):"""1. 构建大根堆2. 调整堆为完全二叉树3."""n = len(li)for i in range((n - 1 - 1) // 2, -1, -1):"""i: 构建大根堆的时候调整部分跟的下标(构建堆的过程是从最后一个非叶子节点开始的)建堆过程(构建一个大根堆)"""sift(li, i, n - 1)for i in range(n - 1, -1, -1):# i永远指向堆的最后一个元素,堆空间每次减一给已经排好位置的腾出空间li[0], li[i] = li[i], li[0]  # 把最大的元素放到原来最后一位sift(li, 0, i - 1)  # 将堆空间每次减一,排序li = [i for i in range(100)]
import randomrandom.shuffle(li)
print(li)heap_sort(li)
print(li)
python中的heapq模块

python有一个内置的推排序模块,(在构建堆的时候,构建的是小根堆)

import random
import heapqli = [random.randint(1, 101) for i in range(10)]
print(li)
heapq.heapify(li)  # 建堆(小根堆)
for i in range(len(li)):tmp = heapq.heappop(li)  # 弹出一个最小元素

若有错误与不足请指出,关注DPT一起进步吧!!!

http://www.hkea.cn/news/255867/

相关文章:

  • 如何用php数据库做网站搜索seo优化托管
  • 中国城乡建设部人力网站首页优化落实疫情防控
  • 做网站到底能不能赚钱网络优化工程师前景
  • 乌镇网站建设标书百度站长工具域名查询
  • 制作公司网站价格腾讯广告代理商加盟
  • 大学生活动网站开发文案苏州seo门户网
  • 阿里云认证网站建设题库seo助理
  • 凤岗网站仿做靠谱seo外包定制
  • xampp安装wordpress说明徐州seo外包
  • 啥网站都能看的浏览器下载百度收录查询工具
  • 福田附近公司做网站建设哪家效益快奶糖 seo 博客
  • 临沂免费自助建站模板品牌整合营销
  • iis做本地视频网站找客户资源的网站
  • 做调查用哪个网站网络推广有多少种方法
  • 开发一个交易网站多少钱在线工具
  • 网站平台怎么建立的软文范例
  • 移动应用开发专业学什么东莞seo软件
  • 做宣传网站的公司手机百度极速版app下载安装
  • 私人可以做慈善网站吗外贸如何推广
  • 网站页面模板页面布局如何成为百度广告代理商
  • 瑞安外贸网站建设曲靖百度推广
  • 先做网站还是服务器销售营销方案100例
  • 用卫生纸做的礼物街网站免费网页空间到哪申请
  • 手游网站做cpc还是cpm广告号厦门网页搜索排名提升
  • 人个做外贸用什么网站好宁波百度seo点击软件
  • 诈骗网站怎么做的企业网站seo案例分析
  • 如何做网站接口湖南营销型网站建设
  • 进入兔展网站做PPt软文营销ppt
  • app网站新闻危机公关
  • 东莞关键词优化实力乐云seo南宁seo外包服务商