-
该项目通过示例演示数据结构和算法,展示了其在 LeetCode 上的耗时
资源介绍
leetcode
耗时数据结构和算法
该项目通过示例演示数据结构和算法概念。
大O
描述算法的性能。
时间复杂度:
算法消耗的时间基于输入的长度/大小。
空间复杂度:
(额外)基于输入长度/大小的算法所需的空间。
分配给输入的空间不计算在内。
O(1):
不变。
输入的大小无关紧要。
算法总是需要恒定的时间来运行。
上):
线性。
随着输入的增长,算法的成本也线性增长。
如果输入计数为
n,则算法将执行
n
次操作。
例如:循环遍历所有输入元素并执行操作。
O(n^2):
二次方。
如果输入计数为
n,则算法将执行
n*n
次操作。
如果输入的大小很大,则比线性更糟糕。
例如:多个循环遍历所有输入元素以执行操作。
O(log
n):
对数。
如果输入计数为
n,则算法将执行
log
n
次操作。
比线性和二次方更有效和可扩展。
例如:对排序数组进行二分搜索。
O(2^n):
指数。
根本没有可扩展性。
随着输入大小的增长,执行的操作数量呈指数增长。
基本线性数据结构
数组:
最简单的数据结构。
在
C#
中:静态(数组)
-
固定大小与动态(列表)
-
自动增长或缩小。
LookupB
- 上一篇: 《C++算法程序设计》
- 下一篇: 串的模式匹配算法--KMP算法演示示例