为什么学习算法?
算法是程序的灵魂。无论你是准备面试、参加竞赛,还是开发高性能应用,扎实的算法基础都至关重要。Python 语法简洁,是学习和实现算法的理想语言。
常见算法分类
- 排序算法:冒泡排序、快速排序、归并排序等
- 搜索算法:线性搜索、二分查找、深度/广度优先搜索
- 动态规划:背包问题、最长公共子序列、斐波那契数列优化
- 贪心算法:活动选择、霍夫曼编码
- 图算法:Dijkstra最短路径、拓扑排序
快速排序示例(Python)
快速排序是一种高效的分治排序算法,平均时间复杂度为 O(n log n)。
def quicksort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quicksort(left) + middle + quicksort(right)
# 示例
print(quicksort([3, 6, 8, 10, 1, 2, 1]))
# 输出: [1, 1, 2, 3, 6, 8, 10]
学习建议
1. 从基础数据结构(列表、栈、队列、树、图)入手。
2. 动手实现每一个算法,不要只看不写。
3. 在 LeetCode、牛客网等平台刷题巩固。
4. 理解时间与空间复杂度,学会分析算法效率。