今日讯!相册大师如何购买会员卡_相册大师如何购买会员
解答:1、首先打开相册主,进入个人中心,点击立即打开选项;2、可以进入会员页面查看各种会员特权;3、套餐种类繁多,选择套
【资料图】
class MaxHeap: def __init__(self): self.heap = [] def parent(self, i): return (i - 1) // 2 def left_child(self, i): return 2 * i + 1 def right_child(self, i): return 2 * i + 2 def get_max(self): if not self.heap: return None return self.heap[0] def insert(self, item): self.heap.append(item) self._heapify_up(len(self.heap) - 1) def extract_max(self): if not self.heap: return None max_item = self.heap[0] last_item = self.heap.pop() if self.heap: self.heap[0] = last_item self._heapify_down(0) return max_item def _heapify_up(self, i): while i > 0 and self.heap[i] > self.heap[self.parent(i)]: self.heap[i], self.heap[self.parent(i)] = self.heap[self.parent(i)], self.heap[i] i = self.parent(i) def _heapify_down(self, i): max_index = i left = self.left_child(i) if left < len(self.heap) and self.heap[left] > self.heap[max_index]: max_index = left right = self.right_child(i) if right < len(self.heap) and self.heap[right] > self.heap[max_index]: max_index = right if i != max_index: self.heap[i], self.heap[max_index] = self.heap[max_index], self.heap[i] self._heapify_down(max_index)if __name__ == "__main__": max_heap = MaxHeap() max_heap.insert(1) max_heap.insert(2) max_heap.insert(0) max_heap.insert(8) print(max_heap.get_max())
class MinHeap: def __init__(self): self.heap = [] def parent(self, i): return (i - 1) // 2 def left_child(self, i): return 2 * i + 1 def right_child(self, i): return 2 * i + 2 def get_min(self): if not self.heap: return None return self.heap[0] def insert(self, item): self.heap.append(item) self._heapify_up(len(self.heap) - 1) def extract_min(self): if not self.heap: return None min_item = self.heap[0] last_item = self.heap.pop() if self.heap: self.heap[0] = last_item self._heapify_down(0) return min_item def _heapify_up(self, i): while i > 0 and self.heap[i] < self.heap[self.parent(i)]: self.heap[i], self.heap[self.parent(i)] = self.heap[self.parent(i)], self.heap[i] i = self.parent(i) def _heapify_down(self, i): min_index = i left = self.left_child(i) if left < len(self.heap) and self.heap[left] < self.heap[min_index]: min_index = left right = self.right_child(i) if right < len(self.heap) and self.heap[right] < self.heap[min_index]: min_index = right if i != min_index: self.heap[i], self.heap[min_index] = self.heap[min_index], self.heap[i] self._heapify_down(min_index)
最小-最大堆的性质是:树中偶数层的每个节点都小于它的所有后代,而树中奇数层的每个节点都大于它的所有后代。
用途 双端优先级队列
class MinMaxHeap: def __init__(self): self.heap = [] def parent(self, i): return (i - 1) // 2 def left_child(self, i): return 2 * i + 1 def right_child(self, i): return 2 * i + 2 def get_min(self): if not self.heap: return None return self.heap[0] def get_max(self): if not self.heap: return None if len(self.heap) == 1: return self.heap[0] if len(self.heap) == 2: return self.heap[1] if self.heap[1] > self.heap[0] else self.heap[0] return self.heap[1] if self.heap[1] > self.heap[2] else self.heap[2] def insert(self, item): self.heap.append(item) self._heapify_up(len(self.heap) - 1) def extract_min(self): if not self.heap: return None min_item = self.heap[0] last_item = self.heap.pop() if self.heap: self.heap[0] = last_item self._heapify_down_min(0) return min_item def extract_max(self): if not self.heap: return None max_item = self.get_max() max_index = self.heap.index(max_item) self.heap[max_index] = self.heap[-1] self.heap.pop() if max_index < len(self.heap): self._heapify_down_max(max_index) return max_item def _heapify_up(self, i): if i == 0: return parent = self.parent(i) if self.heap[i] < self.heap[parent]: self.heap[i], self.heap[parent] = self.heap[parent], self.heap[i] self._heapify_up_max(parent) else: self._heapify_up_min(i) def _heapify_up_min(self, i): grandparent = self.parent(self.parent(i)) if i > 2 and self.heap[i] < self.heap[grandparent]: self.heap[i], self.heap[grandparent] = self.heap[grandparent], self.heap[i] self._heapify_up_min(grandparent) def _heapify_up_max(self, i): grandparent = self.parent(self.parent(i)) if i > 2 and self.heap[i] > self.heap[grandparent]: self.heap[i], self.heap[grandparent] = self.heap[grandparent], self.heap[i] self._heapify_up_max(grandparent) def _heapify_down_min(self, i): while True: min_index = i left = self.left_child(i) if left < len(self.heap) and self.heap[left] < self.heap[min_index]: min_index = left right = self.right_child(i) if right < len(self.heap) and self.heap[right] < self.heap[min_index]: min_index = right if i != min_index: self.heap[i], self.heap[min_index] = self.heap[min_index], self.heap[i] i = min_index else: break def _heapify_down_max(self, i): while True: max_index = i left = self.left_child(i) if left < len(self.heap) and self.heap[left] > self.heap[max_index]: max_index = left right = self.right_child(i) if right < len(self.heap) and self.heap[right] > self.heap[max_index]: max_index = right if i != max_index: self.heap[i], self.heap[max_index] = self.heap[max_index], self.heap[i] i = max_index else: break
在这个实现中,MinMaxHeap类代表一个min-max堆,包含一个list堆,用于存放堆中的元素。 parent、left_child 和right_child 方法分别返回节点的父节点、左子节点和右子节点的索引。 get_min 方法返回堆中的最小元素,get_max 方法返回堆中的最大元素。 insert 方法将一个元素插入到堆中并维护堆属性。 extract_min 方法从堆中移除最小元素并保持堆属性。 extract_max 方法从堆中移除最大元素并保持堆属性。
_heapify_up、_heapify_up_min、_heapify_up_max、_heapify_down_min 和 _heapify_down_max 方法用于维护最小-最大堆属性。 _heapify_up 在向堆中插入元素后调用,以确保元素位于正确的位置。 _heapify_up_min 和 _heapify_up_max 由 _heapify_up 调用以维护最小-最大堆属性。 _heapify_down_min 和 _heapify_down_max 分别被 extract_min 和 extract_max 调用,以维护 min-max 堆属性。
关键词:
解答:1、首先打开相册主,进入个人中心,点击立即打开选项;2、可以进入会员页面查看各种会员特权;3、套餐种类繁多,选择套
2023年是全面贯彻落实党的二十大精神的开局之年,为了宣传党和政府的路线方针,践行主流媒体的社会责任,华商报-二三里资讯
1、病情分析:24小时脑电图,即24小时动态脑电图,可以记录人体正常活动和睡眠时的脑电波。2、更适用于常规脑电图无法明确
1、避免使用尖锐的工具损坏车顶保护膜,降低车顶的使用寿命。2、通过撒盐、融雪剂、消防水枪清除屋顶积雪,但效果不明显,有时
在今日的LPL季后赛上OMG以下克上战胜LNG挺进四强,至此十大选手中仅剩Meiko一人尚在季后赛,其余选手包括宋圣学圣虎帝全被淘汰。十大选手分别
如果你的企业员工大量流失,一定是你的管理人员、你的中层管理出了问题。不信可以自己做一个实验,打电话给公司离职超过3个月以上的比较优秀的
证券代码:833726证券简称:蜂派科技主办券商:首创证券杭州蜂派科技股份有限公司2023年第一次临时股东大会决议公告本
工人日报-中工网记者邢生祥近日,青海省林草局和省公安厅联合印发《青海省森林草原湿地资源违法犯罪专项整治行动方案》,从2023年3月份开始至1
点击看视频他们的路,是艰辛和荣光,是付出和不舍,是热泪和别离,峥嵘岁月,太多传奇在平凡中书写。新中国成立以来,全国公安机关共有1 7万余
上海市商务委主任朱民介绍,下一步,将落实好本次稳外贸政策措施,加快释放外贸新业态新模式发展动能。一是持续推动跨境电商发展
驻外之家|温暖驻外人数十万驻外人都在关注据南非商业科技网站3月30日报道,南非储备银行货币政策委员会(MPC)决定将回购利率上调50个基点至7
00:20 谁能扛得住青岛的大风 【 98斤女同学差点被9级大风吹跑 网友:知道吨位的重要性了吧[doge]】4月4日,
【本文来自《乡镇公务员升副处要25年,而在中央部委只需要7年,乡镇公务员升迁有多难?》评论区,标题为小编添加】我说个我自
迪士尼动画《海洋奇缘》宣布将拍真人电影,巨石强森饰演半神毛伊。
最近有个同学咨询我到美国念教育系研究生的问题,上来就直接跟我说,她想申请X大(美国藤校之一)。我看了一眼她的成绩,大概是能申上的,但是
伴随着气温回升,珲春市各乡镇农户们早早行动起来,铆足马力为打好春季生产第一仗做足准备。放眼广袤田野,一幅生机勃勃、热火朝天的忙碌景象
解读新商业的财经新媒体,报道资本市场,解读上市公司,追踪财经热点,专栏入驻开放平台
其中,勇士为44 6%,湖人为51 6%,独行侠为36 6%。勇士(41胜38负西部第六)附加赛概率44 6%湖人(40胜38负西部第七)附加赛概率51 6%独行侠(37胜42负…
《黎明觉醒:生机》是一款备受欢迎的生存游戏,玩家需要在一个荒野世界中生存,并与其他玩家合作或竞争。游戏中有各种各样的装备、武器、建筑
腾讯棋牌03年,QQ游戏中出现了一款棋牌游戏,没多久,就风靡全网因为这款游戏能够在QQ好友中轻松展开,增进好友之间的感情
中新经纬4月3日电3日,国新办就第三届中国国际消费品博览会有关情况举行发布会。1-2月,限额以上单位化妆品、金银珠宝、家具等升级类商品零售
169邮箱登录入口官网,169邮箱这个很多人还不知道,现在让我们一起来看看吧!1、进入email 163 com申请在网页上输入163邮箱申请。本文到此分
黑龙江新农合报销时间多久?报销比例是多少?社保网小编来看看。黑龙江新农合报销时间:1、新农合报销是三个月的时间。2、新农合是由我国农民
国金中国铁建高速REIT(508008)分红方案公布,2022年实现收入3 11亿元,国金,基金,分红,公募,中国铁建,reit
4月1日,辽宁省卫生健康委员会、辽宁省发展改革委员会等19部门联合发布《辽宁省关于深入推进医养结合发展的实施意见》,将发