以下是对 C++ 中一些常用算法的时间和空间复杂度的归纳总结:
一、排序算法
1. 冒泡排序(Bubble Sort)
- 时间复杂度:
- 空间复杂度:只需要用到几个临时变量用于交换元素,空间复杂度为 O(1)。
2. 插入排序(Insertion Sort)
- 时间复杂度:
- 空间复杂度:只需要用到一个临时变量用于保存当前要插入的元素,空间复杂度为O(1) 。
3. 快速排序(Quick Sort)
- 时间复杂度:
- 空间复杂度:
4. 归并排序(Merge Sort)
- 时间复杂度:
- 空间复杂度:
二、查找算法
1. 线性查找(Linear Search)
- 时间复杂度:
- 空间复杂度: 只需要几个额外的变量来记录索引等信息,空间复杂度为O(1) 。
2. 二分查找(Binary Search)
- 时间复杂度:
- 空间复杂度:只需要几个额外的变量来记录索引和中间元素等信息,空间复杂度为O(1) 。
三、数值计算相关算法
1. 欧几里得算法(计算最大公约数 - GCD)
- 时间复杂度:
- 空间复杂度:只需要几个额外的变量来存储中间结果,空间复杂度为 O(1)。
2. 计算最小公倍数(LCM)
- 时间复杂度:
- 空间复杂度:同样只需要几个额外的变量,空间复杂度为 O(1) 。
喜欢的小伙伴们可以点点关注,下期再给大家分享干货知识点!