小顶堆时间复杂度_算法复杂度速查表,作为程序员的你,务必收藏

本文整理了常见算法的时间和空间复杂度速查表,包括数组、排序、数据结构等经典算法,适合面试准备。推荐了一套全面的算法学习课程,涵盖动态数组、链表、栈、队列、二叉树等多个主题,帮助提升算法能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

视频教程分享

码农网:http://www.mano100.cn

升级永久会员即可查看网站所有视频教程。

充值链接:http://www.mano100.cn/rjyfk_url-url.html  

文章正文

在面试的时候,估计你会经常问到常见算法的时间和空间复杂度,而且每次都要从网上搜索大量的资料来做好准备,以便不会被问住,答不上来。这里我给大家整理了一些常见算法的时间和空间复杂度的速查表,希望你会用到。

PHP所有最常见最经典的算法题都在这里了,点击查看

图例

baf33921750c51d915822271c4c37c9b.png

数据结构操作

1c51ac408ca764de50648bfc6a5eae40.png

数组排序算法

063f820c147065d6de9485b07d78bb77.png

图操作

1ae95a38977dcb17f37fe666eadb5cfa.png

堆操作

b3f827974ee27e75aa90bac4c70c6f2b.png

大O复杂度图表

2337984e8ac3d9f31731d0ba82cc0743.png

这里给大家推荐一套学习算法的课程,如果有兴趣的可以查看查看!课程介绍

任何时候学习算法都不晚,而且越早越好,这么多年,你听说过技术过时,什么时候听说过算法过时,不仅没有过时,因为机器学习、大数据的要求,算法变得越来越重要了

91b704993bfa0cff5bf8cf5a44fe0de0.png

课程目录

00-学前须知01-复杂度02-动态数组03-链表04-栈05-队列06-二叉树07-二叉搜索树08-AVL树09-B树10-红黑树11-集合12-映射13-哈希表14-二叉堆15-优先级队列16-哈弗曼树17-Trie18-补充19-课件20-Visualization.zip

下载地址

链接:http://www.mano100.cn/thread-336-1-1.html

### 大顶堆和小顶堆时间复杂度 #### 构建堆的时间复杂度 对于大顶堆和小顶堆而言,构建堆的过程可以通过两种方式完成。一种方法是从空堆开始逐个插入元素,每次插入操作的时间复杂度为 O(log n),因此总时间为 O(n log n)[^3]。另一种更为高效的方法是从给定数组直接转换成堆,这种方法通过自底向上调整来实现,整体时间复杂度为 O(n)。 #### 插入新元素的时间复杂度 无论是大顶堆还是小顶堆,在向其中插入一个新的元素时,都需要执行一次上浮(swim)或称为 percolate up 的操作。该操作最坏情况下会沿着树的高度上升至根节点位置,所以插入操作的时间复杂度为 O(log n)[^2]。 #### 删除最大/最小元素的时间复杂度 当从大顶堆中移除最大的元素或是从小顶堆中取出最小的元素时,通常先交换待删除元素与最后一个叶子结点的位置再将其弹出,之后还需对新的根节点执行下沉(sink)或称作 percolate down 操作以恢复堆性质。此过程中同样最多经过树高次比较并可能移动元素,故删除操作的时间复杂度也为 O(log n)。 #### 查找特定元素的时间复杂度 值得注意的是,在堆结构内寻找某个指定值并不像二叉搜索树那样具有高效的查找效率。由于堆主要关注于维护最大或最小键值而非支持快速定位任意成员,所以在最坏情形下仍需线性扫描整个集合才能找到目标项,即查找操作的时间复杂度为 O(n)。 ```python def insert(heap, value): heap.append(value) swim(heap, len(heap)-1) def delete_max_min(heap): # 对应大顶堆中的delete max 或者 小顶堆中的delete min if not heap: raise Exception('Heap is empty') root_value = heap[0] last_index = len(heap) - 1 heap[0], heap[last_index] = heap[last_index], heap[0] del heap[-1] sink(heap, 0) return root_value ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值