需要注意的是,时间复杂度只是一种衡量算法执行效率的指标,不同场景下可能存在最优解。同时,算法的时间复杂度可能会受到输入数据规模和实现方式的影响。在实际应用中,根据具体问题和数据规模选择合适的算法是很重要的。
-
排序算法:
- 冒泡排序(Bubble Sort):O(n^2)
- 选择排序(Selection Sort):O(n^2)
- 插入排序(Insertion Sort):O(n^2)
- 希尔排序(Shell Sort):O(n log n) ~ O(n^2)
- 归并排序(Merge Sort):O(n log n)
- 快速排序(Quick Sort):O(n log n) ~ O(n^2)
- 堆排序(Heap Sort):O(n log n)
-
查找算法:
- 顺序查找(Sequential Search):O(n)
- 二分查找(Binary Search):O(log n)
-
图算法:
- 深度优先搜索(DFS):O(V + E)
- 广度优先搜索(BFS):O(V + E)
-
动态规划算法:
- 斐波那契数列:O(n)
- 最长公共子序列(LCS):O(m * n)
- 背包问题(0-1 背包):O(n * W)
-
贪心算法:
- 找零问题:O(n)
-
哈希算法:
- 哈希查找:O(1) - 平均情况,O(n) - 最坏情况
-
字符串匹配算法:
- 暴力匹配:O(m * n)
- KMP 算法:O(m + n)