开个网站多少钱一年学校网站源码

news/2025/10/2 23:47:50/文章来源:
开个网站多少钱一年,学校网站源码,西充县企业网站建设,松江网站开发培训学校heap【堆】掌握 手写上浮、下沉、建堆函数 对一组数进行堆排序 直接使用接口函数heapq 什么是堆#xff1f;#xff1f;#xff1f;堆是一个二叉树。也就是有两个叉。下面是一个大根堆#xff1a; 大根堆的每一个根节点比他的子节点都大 有大根堆就有小根堆#xff1…heap【堆】掌握 手写上浮、下沉、建堆函数 对一组数进行堆排序 直接使用接口函数heapq 什么是堆堆是一个二叉树。也就是有两个叉。下面是一个大根堆 大根堆的每一个根节点比他的子节点都大 有大根堆就有小根堆 我们可以看到红9在绿9的下一层大小堆中我们需要注意【只有根节点对子节点的大小比较】没有子节点之间的比较。 一、手写函数 def siftup(heap, pos):endpos len(heap)startpos posnewitem heap[pos]# Bubble up the smaller child until hitting a leaf.childpos 2*pos 1 # leftmost child positionwhile childpos endpos:# Set childpos to index of smaller child.rightpos childpos 1if rightpos endpos and not heap[childpos] heap[rightpos]:childpos rightpos# Move the smaller child up.heap[pos] heap[childpos]pos childposchildpos 2*pos 1# The leaf at pos is empty now. Put newitem there, and bubble it up# to its final resting place (by sifting its parents down).heap[pos] newitemup操作只是将孩子提上去但是没有保证根节点比孩子小现在比较孩子和父节点如果父节点更大往下覆盖孩子节点并且往上继续比较上面的父节点直至到头start将原来的子节点的值覆盖在此时的父节点上。siftdown(heap, startpos, pos)up与down一起维持小根堆性质 def siftdown(heap, startpos, pos):newitem heap[pos]# Follow the path to the root, moving parents down until finding a place# newitem fits.while pos startpos:parentpos (pos - 1) 1parent heap[parentpos]if newitem parent:heap[pos] parentpos parentposcontinuebreakheap[pos] newitemdef heappop(heap):Pop the smallest item off the heap, maintaining the heap invariant.lastelt heap.pop() # raises appropriate IndexError if heap is emptyprint(pop:, lastelt)if heap:returnitem heap[0]heap[0] lasteltsiftup(heap, 0)print(heap:, heap)print(returnitem, returnitem)return returnitemreturn lasteltdef heapify(x):Transform list into a heap, in-place, in O(len(x)) time.n len(x)for i in reversed(range(n//2)):从最后一个根节点开始将孩子节点最小的覆盖根节点并不断往下找将较小的孩子提上来。直到没有孩子将根节点的值覆盖到此时的孩子节点上siftup(x, i)def heap_sort(arr):# 将数组转换为小根堆heapify(arr)print(arr)# 弹出堆顶元素直到堆为空每次pop最后一个节点并输出根节点。将最后一个节点覆盖在根节点上并且进行up——down操作位置小根堆性质return [heappop(arr) for _ in range(len(arr))]if __name__ __main__:# 示例数组arr [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]# 执行堆排序sorted_arr heap_sort(arr)# 打印排序后的数组print(sorted_arr, sorted_arr) 二、调用python接口 import heapq def heap_sort(arr):# 将数组转换为小根堆heapq.heapify(arr)print(arr)# 弹出堆顶元素直到堆为空每次pop最后一个节点并输出根节点。将最后一个节点覆盖在根节点上并且进行up——down操作位置小根堆性质return [heapq.heappop(arr) for _ in range(len(arr))]if __name__ __main__:# 示例数组arr [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]# 执行堆排序sorted_arr heap_sort(arr)# 打印排序后的数组print(sorted_arr, sorted_arr) 输出 [1, 1, 2, 3, 3, 9, 4, 6, 5, 5, 5] sorted_arr [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9] 三、时间复杂度 siftup(heap, pos) 函数 这个函数将一个元素上浮到它应该在的位置。在最坏的情况下它可能需要上浮到堆的根节点时间复杂度是 O(log n)其中 n 是堆中元素的数量。 siftdown(heap, startpos, pos) 函数 这个函数将一个元素下沉到它应该在的位置。同样在最坏的情况下它可能需要下沉到叶子节点时间复杂度也是 O(log n)。 heappop(heap) 函数 这个函数移除并返回堆顶元素最小元素然后通过调用 siftup 来修复堆。siftup 的时间复杂度是 O(log n)所以 heappop 的时间复杂度也是 O(log n)。 heapify(x) 函数 这个函数将一个数组转换成一个堆。它从最后一个父节点开始向上调用 siftup。由于堆的最后一个父节点的索引是 n/2 - 1n 是数组的长度所以它实际上调用了大约 n/2 次 siftup。因此heapify 的时间复杂度是 O(n)。 heap_sort(arr) 函数 这个函数首先调用 heapify 将数组转换成一个堆然后通过 n 次调用 heappop 来移除所有元素。由于 heapify 的时间复杂度是 O(n)并且 heappop 的时间复杂度是 O(log n)heap_sort 的总时间复杂度是 O(n log n)。 总结 时间复杂度 siftup: O(log n)siftdown: O(log n)heappop: O(log n)heapify: O(n)heap_sort: O(n log n) 整体上对于堆排序算法的时间复杂度分析如下 构建堆Heapifyheapify 函数将数组转换成一个堆。对于一个长度为 n 的数组heapify 的时间复杂度是 O(n)。这是通过从最后一个父节点开始向上调用 siftup 实现的每个 siftup 操作的时间复杂度是 O(log n)但由于堆的结构特性实际上 heapify 的总体时间复杂度是线性的。 堆排序Heap Sort在 heap_sort 函数中首先调用 heapify 将数组转换成一个堆然后通过 n 次调用 heappop 来移除所有元素。每次 heappop 操作的时间复杂度是 O(log n)。因此n 次 heappop 的总时间复杂度是 O(n log n)。 综合以上两点堆排序的整体时间复杂度是 O(n n log n)简化后为 O(n log n)。这是因为在堆排序过程中构建堆是一次性的而移除元素需要 n 次操作每次操作的复杂度是 log n。 空间复杂度O(1)因为所有操作都是原地进行的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925422.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

go mod 面试题

go mod 有哪些命令都有什么作用 Go Mod 常用命令及功能一览 go mod 是 Go 语言从 1.11 版本开始引入的官方依赖管理工具,用于初始化、创建和维护项目的 go.mod 文件,管理项目的依赖关系。 以下是 go mod 最核心、最常…

做学校子网站抖音代运营违法吗

body{margin:8px;} iframe{border:2px;} th,td{padding:1;} table{border-spacing:2px;border-collapse:separate;} dfn{斜体} <dfn> 标签可标记那些对特殊术语或短语的定义。 现在流行的浏览器通常用斜体来显示 <dfn> 中的文本。将来&#xff0c;<dfn> 还可…

网站报名系统怎么做wordpress 点击量

一般是三种方法&#xff1a;(1)用vector的vector&#xff0c;(2)先分配一个指针 数组&#xff0c;然后让里面每一个指针再指向一个数组&#xff0c;这个做法的好处是访问数组元素时比较直观&#xff0c;可以用a[x][y]这样的写法&#xff0c;缺点是它相当于C#中的一个锯齿 数组&…

多轮对话系统设计的逻辑陷阱与解决方案

一、引言:对话系统的复杂性挑战 随着GPT-5等大模型技术的成熟,多轮对话系统在客服、教育、医疗等领域的应用日益广泛。然而,根据2025年MIT人机交互实验室的研究显示,78%的对话系统故障源于设计逻辑缺陷而非技术限制…

手机免费建立网站wordpress 旋转预加载

目录 一、前菜 1、Python选择 2、pip源切换 3、ffmpeg配置问题 4、VSCode添加Jupyter扩展 二、配置虚拟环境 1、下载源码 方法一 直接下载源码压缩包 方法二 使用git 1&#xff09;git加入鼠标右键 2&#xff09;git clone源码 2、VSCode出场 1&#xff09;创建pyth…

网站综合查询工具在谷歌上怎么做网页

默默地EEer&#xff0c;原文地址&#xff1a; http://www.cnblogs.com/hebaichuanyeah/p/5625233.html 职责链模式指使多个对象多有机会处理请求&#xff0c;避免请求发送者和接受者的耦合关系。 将这些接受处理的对象连成一条链&#xff0c;并沿着该链处理请求。 一个传说中的…

c 教程如何做网站茶叶市场网站建设方案

“开始”-->“运行”-->“cmd”打开命令提示符&#xff0c;&#xff08;或win R&#xff09;输入“netstat -ano”可以看到所有的连接。可能的话&#xff0c;在“windows任务管理器”找到PID对应的程序即可。如果没有PID项&#xff0c;可以在“windows任务管理器”选“查…

app界面生成器网站seo网络优化公司

spring-boot项目搭建一、从官网搭建1、进入spring官网&#xff0c;快速初始化一个项目2、填写项目基本信息3、项目结构分析4、添加项目依赖5、下载到本地6、解压7、idea&#xff0c;打开&#xff0c;使用maven构建项目8、使用maven构建9、这是构建好的&#xff0c;其它目录全部…

嘉兴网站seo外包百度网站提交

1.概念 有监督学习正向传播&#xff1a;输入样本---输入层---各隐层---输出层反向传播&#xff1a;误差以某种形式在通过隐层向输入层逐层反转&#xff0c;并将误差分摊给各层的所有单元&#xff0c;以用于修正各层的权值激活函数&#xff1a;也叫阶跃函数&#xff0c;目的是引…

【光照】[PBR][菲涅尔]实现方法对比

Unity URP中的菲涅尔效应主要采用Schlick近似模型,通过三步流程实现:确定基础反射率F₀、角度依赖计算和金属/非金属处理。该模型以1次pow运算实现高性价比的实时渲染,视觉误差小于2%,并与GGX+Smith模型完美配合。…

专做展厅设计网站专业网站优化seo

信息流广告是什么 “今日头条和百度必有一战”&#xff0c;相信不少的互联网人在过去几个月都听到过类似的断言。定位于信息分发平台的今日头条和主营搜索业务的百度会产生如此大的利益冲突&#xff0c;最核心的点其实就是信息流广告。 信息流广告指的是在用户使用互联网产品或…

20251002NOIP模拟赛

T4: 题目大意: 定义一个数组 \(a\) 是良好的,当且仅当可以选择若干个(可以为 0)不交的区间,将他们内部 reverse 之后升序。 给定 \(n\) 和排列 \(a\),对于每个 \(k\),求有多少子序列不包含 \(a_{k}\) 且是良好…

网站怎么做qq微信登陆个人建网站允许吗

Cython不仅仅是一种编程语言。它的起源可以追溯到SAGE数学软件包&#xff0c;它用于提高数学计算性能&#xff0c;例如涉及矩阵的计算。更一般地说&#xff0c;我倾向于将Cython视为SWIG的替代品&#xff0c;为本机代码生成非常好的Python绑定。SWIG是最早和最好之一&#xff0…

自助网站建设技术支持品牌网站分析

python全栈开发笔记第二模块 第四章 &#xff1a;常用模块&#xff08;第二部分&#xff09; 一、os 模块的 详解 1、os.getcwd() &#xff1a;得到当前工作目录&#xff0c;即当前python解释器所在目录路径 import os j os.getcwd() # 返回当前pyt…

P10279 [USACO24OPEN] The Winning Gene S题解

题目描述 给定一个长为 \(N\) 的字符串 \(S\),其中 \(1\le N\le 3000\)。对某个数对 \((K,L)\),其中 \(1\le L\le K\le N\),从 \(S\) 中取出所有 \(K\) 长度的子串,取出其所有长度为 \(L\) 的子串,将字典序最小的…

广州电商网站开发公司单页面 网站

简介&#xff1a; 7月8日&#xff0c;中文语言理解权威评测基准CLUE公开了中文小样本学习评测榜单最新结果&#xff0c;阿里云计算平台PAI团队携手达摩院智能对话与服务技术团队&#xff0c;在大模型和无参数限制模型双赛道总成绩第一名&#xff0c;决赛答辩总成绩第一名。 作…

欧亚专线到国内多久网站东莞优化建设

利用示波器统计工具分析有噪声信号之测量统计和余晖图2019-09-24数字示波提供了多种基于统计的工具&#xff0c;除了前文提到的平均和直方图之外&#xff0c;测量参数统计和余晖图&#xff0c;也是非常有用的工具&#xff0c;协助快速获取有用信息。对于示波器测量参数&#xf…

网站制作方案怎么写wordpress微信付款插件

命令stat命令语法stat(选项)(参数)命令描述命令stat用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。命令选项-L&#xff1a;支持符号连接&#xff1b;-f&#xff1a;显示文件系统状态而非文件状态&#xff1b;-t&#xff1a;以简洁方式输出信息&#…

机构类网站有哪些网站建设辶金手指排名十五

博主个人小程序已经上线&#xff1a;【中二少年工具箱】 小程序二维如下&#xff1a; 正文开始 专栏简介专栏初衷 专栏简介 本系列文章由浅入深&#xff0c;从基础知识到实战开发&#xff0c;非常适合入门同学。 零基础读者也能成功由本系列文章入门&#xff0c;但如果您具…

从零搭建雷池WAF:环境配置、安装部署与Web防护实战

从零搭建雷池WAF:环境配置、安装部署与Web防护实战 在Web安全领域,WAF(Web应用防火墙)是抵御SQL注入、XSS、文件上传等攻击的关键防线。雷池(SafeLine)作为一款开源且易用的WAF工具,能有效保护Web服务安全。本文…