学习大纲
大约 2 分钟
学习大纲
建议
学习算法的过程需要持续的练习、理解和思考。以下是一些建议:
学习算法之前,需要有一定的数据结构基础。如果对数据结构还不熟悉,可以先学习数据结构相关的知识。
选择一本好的算法教材或者课程,建议选择一些经典的书籍或者公认比较好的课程,比如算法导论、LeetCode等。
不要只看,要亲自实践。学习算法最好的方式就是写代码,自己动手实现算法,不断地调试和优化,不断地丰富自己的算法库。
刻意练习和总结。刻意练习是指有目的、有计划地练习某个技能。在学习算法时,可以通过做题、写代码等方式进行刻意练习。总结是指学习过程中要善于总结,总结一些算法的特点、优缺点、适用场景等,对于帮助自己理解和记忆算法很有帮助。
参加算法竞赛。算法竞赛是锻炼算法能力的好方式,可以参加一些算法竞赛的练习和比赛,这样可以锻炼算法的实战能力,同时也可以学习到其他人的优秀思路和方法。
交流和讨论。学习算法的过程中,可以多与其他人交流和讨论,分享自己的思路和代码,借鉴其他人的经验和方法,这样可以加深自己的理解,同时也可以拓展自己的视野。
总之,学习算法需要持之以恒、耐心和毅力,需要不断的练习、总结和思考,相信只要下足功夫,就能够掌握算法的精髓。
算法分析
- 如何分析算法
- 如何理解渐进记号
算法基本思想
- 分治算法
- 贪心算法
- 动态规划
- 回溯算法
- 枚举算法
算法
排序
- 插入排序
- 归并排序
- 堆排序
- 快速排序
- 冒泡排序
- 选择排序
- 计数排序
- 基数排序
- 桶排序
- 线性时间选择排序
搜索
- 深度优先搜索
- 广度优先搜索
- A*启发式搜索
查找
- 线性表查找
- 树结构查找
- 散列表查找
- 字符串匹配
- 扑素
- KMP
- Robin-Karp
- Boyer-Moore
- AC自动机
- Trie
- 后缀数组
数据结构
线性表
- 数组
- 字符串基础
- 链表
- 栈
- 队列
- 散列表(哈希表)
树
- 二叉树
- 完全二叉树
- 满二叉树
- 平衡二叉树
- 二叉查找树
- 平衡二叉查找树
- 多路查找树
- B树
- B+树
- 2-3树
- 2-3-4树
- 堆
- 大顶堆
- 小顶堆
- 优先级队列
- 斐波那契堆
- 二项堆
图
- 图的存储
- 邻接矩阵
- 邻接表
- 拓扑排序
- 最短路径
- 关键路径
- 最小生成树
- 二分图
- 最大流
- 图的存储