算法与数据结构
2019-12-30 10:04:46 2 举报
AI智能生成
数据结构和算法
作者其他创作
大纲/内容
数据结构与算法之美
为什么要学习数据结构和算法
建立时间复杂度、空间复杂度意识
写出高质量的代码
能够设计基础架构
提升编程技能,训练逻辑思维
如何抓住重点,系统高效地学习数据结构与算法?
实际上,数据结构和算法的东西并不多, 常用的、基础的知识点更是屈指可数。
概念
从广义上讲,数据结构就是指一组数据的存储结构。 算法就是操作数据的一组方法。
从狭义上讲,也就是我们专栏要讲的,是指某些著名的数据结构和算法,比如队列、栈、堆、二分查找、动态规划等。
学习重点
复杂度分析
时间复杂度
空间复杂度
10 个数据结构
数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树
10 个算法
递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法
学习思路
来历
自身的特点
适合解决的问题
实际的应用场景
学习技巧
1. 边学边练,适度刷题
即便是 BAT 这样的公司, 只要彻底掌握这个专栏的内容,就足以应对。
每节课的数据结构和算法都全部写出来
2. 多问、多思考、多互动
在留言区增加自己的留言
看评论区留言
3. 打怪升级学习法
每节课后都写一篇学习笔记或者学习心得
每节课都找一下我讲得不对、不合理的地方
4. 知识需要沉淀,不要想试图一下子掌握所有
先易后难
复杂度分析
数据结构
数组
链表
栈
队列
跳表
散列表
哈希算法
二叉树
红黑树
递归树
堆
堆排序
堆的应用
图
深度优先搜索
广度优先搜索
Trie树
AC自动机
基础算法
排序
插入排序
冒泡排序
快速排序
查找
二分查找
字符串匹配
BM算法
KMP算法
算法思想
递归
贪心
分治算法
回溯算法
动态规划
高级应用
拓扑排序
最短路径
位图
概率统计
向量空间
B+树
搜索
索引
并行算法
实战
剖析Redis常用数据类型对应的数据结构
剖析搜索引擎背后的经典数据结构和算法
剖析高性能队列Disruptor背后的数据结构和算法
剖析微服务接口鉴权限流背后的数据结构和算法
如何用学过的数据结构和算法实现一个短网址系统?
刷题
数组和链表
数组
实现一个支持动态扩容的数组
链表
漫画算法
概述
什么是算法
什么是数据结构
时间复杂度
空间复杂度
时间与空间的取舍
数据结构
物理结构
顺序存储结构
数组
什么是数组
数组的基本操作
数组的优势
数组的劣势
链式存储结构
链表
什么是链表
链表的基本操作
链表的优势
链表的劣势
逻辑结构
线性结构
顺序表
栈
什么是栈
栈的基本操作
栈的应用
队列
什么是队列
队列的基本操作
入队
出队
队列的应用
循环队列
散列表
什么是散列表
为什么需要散列表
哈希函数
散列表的读写操作
非线性结构
树
什么是树
二叉树
什么是二叉树
二叉树的遍历
为什么要研究遍历
深度优先遍历
广度优先遍历
二叉堆
什么是二叉堆
二叉堆的自我调整
代码实现
优先队列
图
算法
排序算法
冒泡排序
什么是冒泡排序
冒泡排序的优化
鸡尾酒排序
快速排序
什么是快速排序
两个核心问题
基准元素的选择
元素的交换
单边循环法
非递归实现
堆排序
什么是堆排序
代码实现
计数排序
线性时间的排序
什么是计数排序
计数排序的优化
桶排序
什么是桶排序
面试算法
如何判断链表有环
最小栈的实现
如何求最大公约数
如何判断一个数是否为2的整数次幂
无序数组排序后的最大相邻差
如何用栈实现队列
寻找全排列的下一个数
删去k个数字后的最小值
如何实现大整数相加
如何求解金矿问题
寻找缺失的整数
算法的实际应用
Bitmap的巧用
用户标签
LRU算法
A星寻路算法
迷宫寻路
红包算法
0 条评论
下一页