【Leetcode】各结构的时间复杂度

news/2025/2/19 8:47:19/

时间复杂度其实就是算法执行完的步骤次数。

二分时间复杂度 log(n)

二分法时间复杂度为什么是logN解析。

二分法就是把一个数据规模为N的先分为N/2,然后再分为N/4,N/8,N/16…一直等分到N/y =1的时候就不分了,现在我们来考虑下,到底分多少次才能把规模为N的数据分到结果为1,这里假设为x次,这个x就是次数,也是我们用大O表示法表示的时间复杂度,我们只需要把x取到就可以了。

这里按我们的数学思维把规律列举一下。

次数结果规律
1N/2N/2^1
2N/4N/2^2
3N/6N/2^3
4N/16N/2^4

我们很明显一眼就可以看出,假如x次后结果为1,那么

  1. N/2^x = 1
  2. 2^x = N
  3. x=logN

因此二分法的时间复杂度就是O(logN)

二叉树的高度:二叉树的高度是从叶节点开始(其高度为1)自底向上逐层累加的。

二叉树的深度:二叉树的深度是从根节点开始(其深度为1)自顶向下逐层累加的。

  • 虽然树的深度和高度一样,但是具体到树的某个节点,其深度和高度是不一样的。因此,二叉树的高度和深度不一样。
  • 具有n个结点的完全二叉树的深度为「log2n」+1
  • 二叉树的高度和深度一样吗 • Worktile社区

二叉树时间复杂度:O(n)

二叉树空间复杂度:

  • 二叉树中,空间复杂度主要取决于树的高度和节点数。对于一个有n个节点的二叉树来说,其高度为logn,所以空间复杂度为O(logn)
  • 如果二叉树是满二叉树,即每个节点都有2个子节点,那么空间复杂度是O(n)需要存储所有节点。

LC215 时间复杂度


http://www.ppmy.cn/news/1207600.html

相关文章

【Rust日报】2023-11-08 RustyVault -- 基于 rust 的现代秘密管理系统

RustyVault -- 基于 rust 的现代秘密管理系统 RustyVault 是一个用 Rust 编写的现代秘密管理系统。RustyVault 提供多种功能,支持多种场景,包括安全存储、云身份管理、秘密管理、Kubernetes 集成、PKI 基础设施、密码计算、传统密钥管理等。RustyVault 可…

leetcode一道比较难的链表题

今天还是继续来分享我们的链表题,这个题目有点难,主要是思路比较难想,但是如果沥青思路写起来就比较简单了(我乱讲的) 随机链表的复制 这个是题目的描述,大家也可以在链接里看,那我把这道题目…

C语言中一维指针、二维指针和三维指针

指针可以指向一份普通类型的数据,例如 int、double、char 等,也可以指向一份指针类型的数据,例如 int *、double *、char * 等。 如果一个指针指向的是另外一个指针,我们就称它为二级指针,或者指向指针的指针。 假设…

Triples of Cows

题目传送门 引 模拟赛 T 4 T4 T4 , 变换挺妙的, 而且感觉转换后问题就迎刃而解了 解法 强行模拟拆点重连边显然不行,会让图的边数达到 n 2 n^2 n2 级别的 —————————————————————————————————————————————————— 考虑转…

晶振分频【FPGA】

所有数据对齐晶振。 6分频:【1】 module divider_six // 6分频 【0~2】 ( input wire sys_clk , //系统时钟 50MHz input wire sys_rst_n , //全局复位 output reg clk_out //对系统时钟 6 分频后的信号 );reg [1:0] cnt; //用于计数的寄存器 //cnt:计数器从 0 到…

【STM32】STM32的Cube和HAL生态

1.单片机软件开发的时代变化 1.单片机的演进过程 (1)第1代:4004、8008、Zilog那个年代(大约1980年代之前) (2)第2代:51、PIC8/16、AVR那个年代(大约2005年前) (3)第3代:51、PIC32、Cortex-M0、…

EMQX服务器的API接口使用介绍_完成上位机开发

一、前言 在前面的两篇文章里分别介绍了再Windows和Ubuntu下利用EMQX搭建自己的私有MQTT服务器,实现设备上云。 这篇文章介绍如何利用EMQX提供的API接口,开发用户使用的上位机(我这里分别采用python 和 Qt 进行开发测试),完成对应的功能开发。凭证获取,主题发布、消息获取…

DVWA - 2

文章目录 SQL Injectionlowmediumhigh SQL Injection low 输入 1,可以展示 id 1 的人员信息:输入 1’,有报错信息。可以看出是mysql数据库,‘‘1’’’ 去除两边的引号,再去除1两端的引号,可以看出闭合符…