教育改变生活
标题:
程序员应该掌握的这些算法知识整理
[打印本页]
作者:
Ryanpapa
时间:
2020-4-30 10:07
标题:
程序员应该掌握的这些算法知识整理
1、复杂度分析
看动画轻松理解时间复杂度(一)
看动画轻松理解时间复杂度(二)
冰与火之歌:「时间」与「空间」复杂度
每个程序员都应该收藏的算法复杂度速查表
2、基本算法思想
五分钟了解一下什么是「贪心算法 」
有了四步解题法模板,再也不害怕动态规划!
(进阶版)有了四步解题法模板,再也不害怕动态规划!
(再进阶版)有了四步解题法模板,再也不害怕动态规划!
浅谈什么是分治算法
看动画轻松理解「递归」与「动态规划」
浅谈什么是动态规划以及相关的「股票」算法题
深度解析「正则表达式匹配」:从暴力解法到动态规划
3、排序算法
「多图警告」手撕排序算法 – iOS进阶必备
十大经典排序算法动画与解析,看我就够了!(配代码完全版)
这或许是东半球分析十大排序算法最好的一篇文章
4、搜索
几道和「广度优先搜索」有关的算法面试题
初识广度优先搜索与解题套路
从简单二叉树问题重新来看深度优先搜索
5、查找
二分查找算法详解
一网打尽!二分查找解题模版与题型全面解析
面试官,我会写二分查找法!对,没有 bug 的那种!
6、字符串匹配
动画:BM 算法中的坏字符规则与好后缀规则
动画:七分钟理解什么是KMP算法
动画:什么是 BF 算法 ?
动态规划之 KMP 算法详解(配代码版)
7、线性表
如何高效对有序数组/链表去重?
超详细!详解一道高频算法题:数组中的第 K 个最大元素
一道简单的数组遍历题,加上四个条件后感觉无从下手
数组特性的妙用!如何找到「缺失的第一个正数」
剑指 offer 第一题:二维数组中的查找
动画:什么是单调栈?
在数据结构中穿针引线:链表实现栈和队列
从简单的线性数据结构开始:栈与队列
五分钟学算法小知识:用栈实现队列/用队列实现栈
几道和「堆栈、队列」有关的面试算法题
超详细!图解「合并 K 个排序链表」
动画:面试如何轻松手写链表?
LeetCode 上最难的链表算法题,没有之一!
链表算法面试问题?看我就够了!
看动画轻松理解「链表」实现「LRU缓存淘汰算法」
从简单的线性数据结构开始:穿针引线的链表(一)
在数据结构中穿针引线:链表实现栈和队列
8、散列表
五分钟速读:什么是散列表(哈希表)?
什么是哈希洪水攻击(Hash-Flooding Attack)?
几道和散列(哈希)表有关的面试题
如何判断一个元素在亿级数据中是否存在?
9、树
面试前准备:二叉树高频面试题和答案
懵逼树上懵逼果:学习二分搜索树
LeetCode 二叉树问题小总结
从简单二叉树问题重新来看深度优先搜索
几道和「二叉树」有关的算法面试题
详解什么是平衡二叉树(AVL)(修订补充版)
【面试现场】为什么 MySQL 数据库要用B+树存储索引?
字典树概念与题型解析
面试官:为什么 MySQL 的索引要使用 B+ 树,而不是其它树?比如 B 树?
心里没点 B 树。。。
数据结构与算法——最小生成树
植树节,程序猿种的那些树
数据结构与算法——2-3-4树
数据结构与算法——2-3树
看动画轻松理解「Trie树」
10、图
浅谈什么是图拓扑排序
数据结构与算法——图论基础与图存储结构
数据结构与算法:三十张图弄懂「图的两种遍历方式」
数据结构与算法——图最短路径
总结
学习数据结构和算法的过程,是非常好的思维训练的过程,所以,千万不要被动地记忆,要多辩证地思考,多问为什么。
如果你一直这么坚持做,你会发现,等你学完之后,写代码的时候就会不由自主地考虑到很多性能方面的事情,时间复杂度、空间复杂度非常高的垃圾代码出现的次数就会越来越少。
你的编程内功就真正得到了修炼。
欢迎光临 教育改变生活 (http://bbs.goldoar.com/)
Powered by Discuz! X3.2