完美!字节 3-1 级别大佬把《数据结构与算法,linux 翻墙教程视频
八、图算法
在现实世界中,许多问题是由对象以及它们之间的联系所描述的。例如,在航空地图中,我们可能对这样的问题感兴趣:“从海 德拉巴去纽约,哪种方式最快?”或者“哪种方式价格最便宜?”为了回答这些问题,需要关于对象(城镇)之间的联系(飞行路线)信息。图就是用来解决这类问题的数据结构。
![](https://img-blog.csdnimg.c
n/img_convert/f6d7fd5f302f960620b4aa20fb2ab50a.png)
点击:[数据结构与算法获取地址](
) 即可获得数据结构与算法获取方式!
九、排序
什么是排序
排序是按照某种顺序(升序或降序)排列序列元素的一种算法。排序的输出是输入地排列或重新排序。
十、查找
什么是查找
在计算机科学中,查找(或称为搜索)就是从一个项目的集合中寻找某个具有特定属性的项目的过程。项目可以是存储在数据库中的记录、数组中的简单数据元素、文件中的文本、树中的结点、图中的顶点和边,或者其他搜索空间的元素。
十一、选择算法( 中位数 )
什么是选择算法
选择算法是在某个列表中寻找第 k 个最小/最大数字(也称为第 k 个顺序统计量)的算法法。这包括查找最小值、最大值和中位数。对于查找第 k 个顺序统计量,有多种不同的复杂的解决方案,本章将列举所有这些可能的解决方案。
十二、符号表
符号表是关联值和键值的一种数据结构
点击:[数据结构与算法获取地址](
) 即可获得数据结构与算法获取方式!
十三、散列
什么是散列
散列是一种用以实现信息存储和快速检索的技术。它常用于执行优化搜索和符号表的实现。
十四、字符串算法
十五、算法设计技术
前面的章节针对不同的问题介绍了各种算法。在求解一个新问题时,通常的思路是寻找当前问题与已解决问题之间的相似之处,从而轻松找到新问题的求解方法。
十六、贪婪算法
首先通过对一个简单理论的讨论,初步理解贪婪的思想。以下棋为例,每一步都有决策都需要考虑对后续棋局的影响。而在网球(或排球)比赛中,选手的行为仅取决于当前的状况,选择当下最为正确的动作,而不关心后续的影响。这说明在某些情况下选择当下最佳行为的决策,可以得到一个最优解(贪婪),但并非所有情况都如此,贪婪策略适用于上述第二类问题。
十七、分治算法
对于第 17 章列举的许多问题,贪婪策略不能提供最优解。而其中的某些问题可通过分治(Divid and Conquer, D&.C)法来轻松求解。分治法是一种重要的基于递归的算法设计技术,分治算法递归地将问题分解为两个或多个同类型的子问题,直至这些子问题简.单到能够直接求解,然后再将这些子问题的解合成为原始问题的解。
十八、动态规划算法
点击:[数据结构与算法获取地址](
) 即可获得数据结构与算法获取方式!
十九、复杂度类型
在前面的各章中,描述了不同问题求解的复杂度。某些算法随着问题规模的增加其复杂度的增长速率较低,而另一些则有比较高的增长速率。对于具有较低增长率的问题,称为简单问题(或易求解问题);对于具有较高复杂度的问题,称为难问题(或难求解的问题)。该分类是基于求解某个问题时算法的运行时间(或者占用内存)决定的。
总结(特点)
所有代码用 Java 实现。
数据结构难点启发思考。
为每个问题列举可能的解决办法。
基于不同复杂度提供多种巧妙的解决方法。
覆盖所有竞争性考试的主题。
评论