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

电子商务网站模板宁波seo关键词优化

电子商务网站模板,宁波seo关键词优化,域名收录提交,旅游公司网页设计二叉堆这个数据结构有点意思#xff0c;自己做了个总结#xff0c;内容结构如下#xff1a;二叉堆性质二叉堆操作应用二叉堆性质#xff1a;堆(Heap)是一个可以被看成近似完全二叉树的结构#xff0c;具有完全二叉树的特性#xff1a;缺少的叶子节点总是位于右子节点n个节…二叉堆这个数据结构有点意思自己做了个总结内容结构如下二叉堆性质二叉堆操作应用二叉堆性质堆(Heap)是一个可以被看成近似完全二叉树的结构具有完全二叉树的特性缺少的叶子节点总是位于右子节点n个节点的完全二叉树高度k⌊ log2n⌋(向上取整)从1开始按层序编号那么第i个节点有如下性质其左子节点索引是2i其又子节点索引是2i1其父节点索引为 i // 2同时具有堆的特性堆顶元素就是最值O(1)时间就能优先拿到从根节点(堆顶)到堆中每一个节点都是一个有序序列。存储方式可以用线性的数组来实现实现简单易操作不过要注意数组下标从0开始这个位置预留占位节点的索引从1开始编号。2.pngbinarytree.png二叉堆操作BinaryHeap()创建一个空的二叉堆对象insert(key)将新元素加入到堆中findMin()返回堆中的最小项最小项仍保留在堆中delMin()返回堆中的最小项同时从堆中删除isEmpty()返回堆是否为空size()返回堆中节点的个数buildHeap(lst)从一个包含节点的列表里创建新堆# 直接导入Pythonds包使用其提供的有关堆的数据结构。from pythonds.trees import BinaryHeapbheapBinaryHeap()bheap.insert(5)#用list来实现对堆的操作class BinaryHeap(object):定义一个二叉堆def __init__(self):self.heapList [0] # 第一个堆元素从1开始编号索引为0占位不用self.currentSize 0def percolateUP(self, i):将第i个元素上浮到合适位置while i // 2 0:if self.heapList[i] self.heapList[i // 2]:self.heapList[i], self.heapList[i // 2] self.heapList[i // 2], self.heapList[i]else:breaki i // 2def percolateDown(self, i):将第i个元素下沉到合适位置while (2 * i) self.currentSize:minIndex self.minChild(i)if self.heapList[i] self.heapList[minIndex]:self.heapList[i], self.heapList[minIndex] self.heapList[minIndex], self.heapList[i]else:breaki minIndexdef minChild(self, i):返回第i个元素左右子节点中最小值if (2 * i 1) self.currentSize:return 2 * i # 只有一个子节点(左子节点)elif self.heapList[2 * i] self.heapList[2 * i 1]:return 2 * ielse:return 2 * i 1def insert(self, key):将新元素加入到堆中self.heapList.append(key)self.currentSize self.currentSize 1self.percolateUP(self.currentSize) # 新值上浮def findMin(self):返回堆中的最小项最小项仍保留在堆中return heapList[1]def delMin(self):返回堆中的最小项同时从堆中删除result self.heapList[1]# 将最后一个元素换到堆顶并删除堆顶元素self.heapList[1] self.heapList.pop()self.currentSize self.currentSize - 1self.percolateDown(1) # 将堆顶元素下沉return resultdef isEmpty(self):返回堆是否为空return len(heapList) 1def size(self):返回堆中节点的个数return len(heapList) - 1def printHeap(self):print(self.heapList[1:])def buildHeap(self, lst):从一个包含节点的列表里创建新堆,用下沉法将时间复杂度控制在O(n)self.currentSize len(lst)i self.currentSize // 2 #从最后一个节点的父节点开始过滤下沉self.heapList [0] lst[:]while i 0:self.percolateDown(i)i i - 1self.printHeap()应用之一-----------------优先队列可以在O(1)时间拿到最值获取最优解实现对VIP或者进程的优先级等操作pic_19.png应用之二-----------------堆排序
http://www.sadfv.cn/news/212564/

相关文章:

  • 深圳住房建设厅网站首页中国域名交易平台
  • 贵阳中企动力做的网站上海企业注销一窗通
  • 做家装家居网站多用户智能网站建设源码
  • 个人网站可以做商业用途吗江西冰溪建设集团网站
  • 做网络推广选择网站asp 网站开发教程
  • 如何线下宣传网站哔哩哔哩网页版怎么回到旧版
  • 能够做代理的网站有哪些问题乐清市龙翔网络工程公司
  • 深圳住房建设网站phpcms手机网站怎么做
  • 网站建设实习业务介绍个人网站代码模板
  • 网站建设app是什么app优化网站
  • 网站建设包括哪些方面的费用网站做app有什么意义
  • 制作网络网站小型办公室网络组建方案
  • 如何在网站上做推广上海宽带网网站
  • 可以做网站的公司如何查看网站的建设方式
  • 昆山做网站多少钱wordpress表格功能
  • 哪个网站做农产品杭州p2p网站开发商
  • 网站建设的目标上海网站建设软件下载
  • 创建个人主页网站wordpress国内工作室主题
  • 外部网站 同意加载服务网站开发
  • 怎么建立一个网站让百度搜到美食网站首页怎么做
  • 建分类网站得花多少钱多多电影免费播放
  • vs网站开发实例怎么搭建网页服务器
  • 衡阳建设学校网站微淘客网站建设
  • 图书馆建设网站佳源房地产最新消息
  • 网站开发的目的相关书籍信息行业网站建设
  • logo图标素材网站国内重大新闻事件
  • 网站特效代码上那找好网站怎么做登录模块
  • 共享网站的建设与规划wordpress 个人资料按钮
  • 网站开发慕枫网站建设的一般步骤
  • 通信建设资质管理信息系统网站网站备案 有什么用