时间复杂度是计算机科学中的一个概念,它处理一组代码或算法作为输入量的函数来处理或运行所花费的时间量的量化。换句话说,时间复杂度是程序处理给定输入所需的时间。算法的效率取决于两个参数:
- 时间复杂度
- 空间复杂度
时间复杂度:它被定义为执行特定指令集的次数而不是总时间。这是因为总时间还取决于一些外部因素,如使用的编译器、处理器的速度等。
空间复杂度:它是程序执行所需的总内存空间。
不同操作的不同数据结构的平均时间复杂度
Data structure | Access | Search | Insertion | Deletion |
Array | O(1) | O(N) | O(N) | O(N) |
Stack | O(N) | O(N) | O(1) | O(1) |
Queue | O(N) | O(N) | O(1) | O(1) |
Singly Linked list | O(N) | O(N) | O(1) | O(1) |
Doubly Linked List | O(N) | O(N) | O(1) | O(1) |
Hash Table | O(1) | O(1) | O(1) | O(1) |
Binary Search Tree | O(log N) | O(log N) | O(log N) | O(log N) |
AVL Tree | O(log N) | O(log N) | O(log N) | O(log N) |
B Tree | O(log N) | O(log N) | O(log N) | O(log N) |
Red Black Tree | O(log N) | O(log N) | O(log N) | O(log N) |
不同操作的不同数据结构的最坏情况时间复杂度
Data structure | Access | Search | Insertion | Deletion |
Array | O(1) | O(N) | O(N) | O(N) |
Stack | O(N) | O(N) | O(1) | O(1) |
Queue | O(N) | O(N) | O(1) | O(1) |
Singly Linked list | O(N) | O(N) | O(1) | O(1) |
Doubly Linked List | O(N) | O(N) | O(1) | O(1) |
Hash Table | O(N) | O(N) | O(N) | O(N) |
Binary Search Tree | O(N) | O(N) | O(N) | O(N) |
AVL Tree | O(log N) | O(log N) | O(log N) | O(log N) |
Binary Tree | O(N) | O(N) | O(N) | O(N) |
Red Black Tree | O(log N) | O(log N) | O(log N) | O(log N) |
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。