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

做网站可以申请个体户么自己如何做链接推广

做网站可以申请个体户么,自己如何做链接推广,爱站网关键词,南京江北新区房价概念 最大堆是一种完全二叉树,父节点的值总是大于或等于其子节点的值。通常,最大堆可以用数组来实现。 最大堆的主要操作包括插入元素和提取最大值。在Python中,可以用一个列表来存储堆的元素。索引从0开始的话,父节点和子节点的…

概念

最大堆是一种完全二叉树,父节点的值总是大于或等于其子节点的值。通常,最大堆可以用数组来实现。

最大堆的主要操作包括插入元素和提取最大值。在Python中,可以用一个列表来存储堆的元素。索引从0开始的话,父节点和子节点的位置关系需要确定。对于索引i的节点,其左子节点是2i+1,右子节点是2i+2,父节点则是(i-1)//2。

插入元素时,需要将新元素添加到数组的末尾,然后进行上浮操作(percolate up),也就是不断和父节点比较,如果比父节点大就交换位置,直到满足最大堆的性质。这样保证插入后堆仍然正确。

提取最大值的操作通常是取出堆顶元素(即数组的第一个元素),然后将数组的最后一个元素移到堆顶,接着进行下沉操作(percolate down),也就是与左右子节点中较大的那个比较,如果比子节点小就交换,直到满足堆的性质。

编写代码的大致步骤:
1.定义MaxHeap类,初始化时可能有输入的数组,并构建堆。
2.实现插入方法,把元素添加到列表末尾,然后上浮。
3.实现提取最大值的方法,交换首尾元素,弹出最后一个,然后下沉新的首元素。
4.编写上浮和下沉的辅助方法。
5.编写构建堆的方法,比如使用下沉操作从最后一个非叶子节点开始调整。

以下是使用Python实现的最大堆(Max Heap)算法:

class MaxHeap:def __init__(self, arr=None):self.heap = []if arr is not None:self.heap = arr.copy()self._build_heap()def _parent(self, i):return (i - 1) // 2def _left_child(self, i):return 2 * i + 1def _right_child(self, i):return 2 * i + 2def _swap(self, i, j):self.heap[i], self.heap[j] = self.heap[j], self.heap[i]def _heapify_up(self, i):while i > 0 and self.heap[i] > self.heap[self._parent(i)]:parent = self._parent(i)self._swap(i, parent)i = parentdef _heapify_down(self, i):max_index = in = len(self.heap)while True:left = self._left_child(i)right = self._right_child(i)if left < n and self.heap[left] > self.heap[max_index]:max_index = leftif right < n and self.heap[right] > self.heap[max_index]:max_index = rightif max_index != i:self._swap(i, max_index)i = max_indexelse:breakdef _build_heap(self):n = len(self.heap)start = n // 2 - 1  # 最后一个非叶子节点for i in range(start, -1, -1):self._heapify_down(i)def insert(self, value):self.heap.append(value)self._heapify_up(len(self.heap) - 1)def extract_max(self):if not self.heap:return Nonemax_val = self.heap[0]last = self.heap.pop()if self.heap:self.heap[0] = lastself._heapify_down(0)return max_valdef get_max(self):return self.heap[0] if self.heap else Nonedef size(self):return len(self.heap)def is_empty(self):return len(self.heap) == 0# 示例用法
if __name__ == "__main__":# 测试插入和提取操作heap = MaxHeap()heap.insert(3)heap.insert(1)heap.insert(4)heap.insert(9)heap.insert(2)print("Extracting max values:")while not heap.is_empty():print(heap.extract_max(), end=" ")  # 应该输出:9 4 3 2 1# 测试通过数组初始化print("\n\nTesting array initialization:")arr = [3, 1, 4, 9, 2]heap_from_array = MaxHeap(arr)print("Original array:", arr)print("Heap structure:", heap_from_array.heap)print("Extracting max values:")while not heap_from_array.is_empty():print(heap_from_array.extract_max(), end=" ")  # 应该输出:9 4 3 2 1
http://www.dtcms.com/wzjs/180607.html

相关文章:

  • 网站js效果优秀网站
  • 怎么建设微信网站seo网站推广推荐
  • 站群网站建设上海百度推广官方电话
  • 南通市网站建设我的完郑州seo优化外包
  • 二手房网站谁做的更好国内真正的永久免费建站
  • 网站身份验证怎么做北京seo外包平台
  • 好友介绍网站怎么做百度推广登录手机版
  • 网站被k 如何恢复潮州网站建设
  • 唐山公司网站制作什么是白帽seo
  • 昆山网站建设ikelv湖南产品网络推广业务
  • 注册企业邮箱要钱吗武汉seo关键字优化
  • web服务器做网站百度关键词工具在哪里
  • 电商法日喀则网站seo
  • 商业网站的基本构成seo服务运用什么技术
  • 北京手机网站建设外包目录型搜索引擎有哪些
  • 住房与建设部网站首页网络营销方案例文
  • wordpress pdf 免费广州seo网站公司
  • 个人专业制作网站电脑系统优化软件十大排名
  • 电影网站怎么做流量2022当下社会热点话题
  • 企业品牌策划方案seo营销优化软件
  • 哪些网站百度不收录怎么免费创建自己的网站
  • 江苏淮安建设局网站搜索引擎推广seo
  • 赌博类网站开发网络服务主要包括
  • 开发棋牌游戏软件需要多少钱最好的优化公司
  • 谷德建筑设计网营销网站优化推广
  • 百度开户做网站2400谷歌浏览器下载官方正版
  • 用网站做简历模板淘宝的17种免费推广方法
  • 企业宣传如何做网站产品网络营销
  • 新疆城乡住房建设厅网站免费加精准客源
  • 网站开发经验简历游戏代理