Algorithm:【算法进阶之路】之算法面试刷题集合—数据结构的简介、最强学习路线(逻辑结构【数组-链表-栈和队列/树-图-哈希】、物理结构【元素/关系】、数据运算【十大排序/四大查找-图三大搜索-树三大遍历】、高级算法【枚举/回溯/递归/分治/动规/贪心】)、问题为导向的十大类刷题算法总结之详细攻略
导读:学习并掌握数据结构的路线,首先理解基本概念和术语。掌握数组和链表的原理、操作和应用场景。熟悉栈和队列的实现和常见应用。深入学习树的概念、遍历方法和各种类型的树。理解图的基本表示法、遍历算法和最短路径算法。学习散列(哈希)的原理、冲突解决方法和应用场景。掌握字符串匹配算法的原理和实现。最后,通过刷题来巩固所学的数据结构知识(如LeetCode、牛客网、HackerRank等)。但是,抽时间的时候,还是要阅读一下经典书籍,如《算法导论》、《数据结构与算法分析》等。
目录
Algorithm:【Algorithm算法进阶之路】之十大经典排序算法(简单插入排序/希尔排序、选择排序/堆排序、冒泡排序/快速排序、归并排序、计数排序/桶排序/基数排序)动态图文讲解及其代码实现
Algorithm:【Algorithm算法进阶之路】——六大高级算法(枚举算法、回溯算法、递归思想、分治思想、动态规划、贪心算法)—最经典二十道算法刷题集合(问题详解+解题思路+代码实现)之最强攻略
Algorithm:【Algorithm算法进阶之路】之数据结构二十多种算法演示(顺序表、链表、栈和队列、串的模式匹配、稀疏矩阵、广义表、二叉树、图、存储管理、静态查找、动态查找、内部排序、外部排序)
Algorithm:【算法进阶之路】之算法面试刷题集合—链表的简介、相关算法题目集合(链表相加、链表的部分翻转、链表划分、链表去重、重复元素全部删除)
Algorithm:【算法进阶之路】之算法面试刷题集合—栈的简介、栈相关的算法题目集合之详细攻略
2.3.1、树Tree结构——二叉树(堆)、多路查找树、字典树
Algorithm:【Algorithm算法进阶之路】之十大经典排序算法(简单插入排序/希尔排序、选择排序/堆排序、冒泡排序/快速排序、归并排序、计数排序/桶排序/基数排序)动态图文讲解及其代码实现
Algorithm:树结构(二叉树/多路查找树/字典树)的简介、具体结构(FBT/CBT/BST/BBT/Heap/Huffman、B树/B+树/R树、字典树)及其运算(增删查/遍历/旋转)、代码实现
五、高级算法思想:EA枚举/RA递归/BA回溯/DAC分治/DP动态规划/GA贪心算法
DSt:数据结构的简介、最强学习路线之六大高级算法(枚举算法、递归思想、回溯算法、分治思想、动态规划、贪心算法)—最经典二十道算法刷题集合(问题详解+解题思路+代码实现)之最强攻略
5.1、EA枚举算法【穷举所有】——指数级O(2^n)或O(n^n)——枚举=穷举+循环结构+无明显优化策略——约瑟夫环、排列组合、求解两数之和
5.2、RA递归思想【调用自身】——有时指数级O(2^n)——递归=分解更小相同子问题+重复调用自身+组合子解合成原问题解——快速排序/归并排序、斐波那契数列【重复计算/效率低】、汉诺塔、N皇后问题
5.3、BA回溯算法【试错】——O(n!)或O(2^n)——回溯=试错思想+深度优先搜索+递归+可剪枝/撤销回溯——全排列、N皇后问题、图的着色
5.4、DAC分治思想【组合子问题解】——O(nlogn)——分治=分而治之+分解更小相互独立的子问题+递归解决+存在重叠计算+组合成原问题的解——快速排序/归并排序、求最大公约数
Algorithm:动态规划算法相关问题—斐波那契数列/背包问题/最短路径/最长公共子序列/整数划分问题/矩阵链乘/字符串的交替连接/格网棋盘/非线性规划、生产计划/资源分配等问题分析及其代码实现
(1)、递归算法【调用自身解决子问题+遍历所有可能解+存在重复计算(效率较低)】、动态规划算法【先解决较小问题+保存子问题的解+额外存储空间(效率较高)+从已有的解推导出新解】
(2)、贪心算法【局部最优+目光短浅】、动态规划【全局最优+远见卓识】
(3)、枚举算法【穷举所有】、回溯算法【试错】、递归算法【调用自身】、分治算法【组合子问题解】、动态规划【保存子问题的解】、贪心算法【局部最优】
(4)、六大算法最新对比:枚举算法、递归思想、回溯算法、分治思想、动态规划、贪心算法
DSt:数据结构知识和算法刷题及其平台、问题为导向的十大类刷题算法(数组和字符串、链表、栈和队列、二叉树、堆、图、哈希表、排序和搜索、回溯算法、枚举/递归/分治/动态规划/贪心算法)总结