复杂度问题

一.时间复杂度

1.特点

时间复杂度:计算语句执行次数,语句执行次数中,规模最大的作为该代码的时间复杂度

2.方法

(1)终止条件

(2)找循环次数和循环变量的关系

(3)和n的关系

例如:

3.常见算法的时间复杂度

插入排序:O(n²)

​冒泡排序:O(n²)

​选择排序:O(n²)

快速排序:O(n log n)(最坏 O(n²))

归并排序:O(n log n)

堆排序:O(n log n)

二.空间复杂度

1.定义

算法除了输入数据本身外,额外开辟的空间

2. 常见

O(1):没开额外数组,只用几个变量

​ 插入、冒泡、选择排序

O(n):开了一个长度为 n 的数组

​ 归并排序、计数排序

​O(log n):递归栈(如快排)

​ O(n):递归深度 n(如坏的快排)

  1. 插入排序

时间:O(n²) 空间:O(1)

  1. 交换排序(冒泡)

时间:O(n²) 空间:O(1)

  1. 关键路径

时间:O(n + e)(n顶点,e边) 空间:O(n + e)

相关推荐
WZ188104638691 小时前
LeetCode第20题
算法·leetcode
像素猎人1 小时前
字符串/字符与整型数据的相互转换stoi/stol()和to_string()
c++·算法
白太岁1 小时前
操作系统开发:(11) RTOS 与 GPOS 的分界线:MMU
c语言·开发语言·汇编·arm开发·系统架构
m0_531237171 小时前
C语言-指针进阶
c语言·开发语言
吕司2 小时前
LeetCode Hot Code——三数之和
数据结构·算法·leetcode
-海绵东东-2 小时前
图论——代码篇
算法·深度优先·图论
Howrun7772 小时前
C++ STL库_队列queue
c++
金枪不摆鳍2 小时前
hot100二分查找专题
数据结构·算法
三无少女指南2 小时前
开发者环境配置最佳实践:编辑器Cursor ,VS Code的上位体验实现 AI 与 WSL 联动
运维·c语言·数据库·windows·git·编辑器