【算法】算法图解

简介: 【算法】算法图解

      最近看了一本算法入门书——算法图解。封面的插画很好玩儿。最吸引我的还是封面里的一句话:向小说一样有趣的算法入门书。上个封面,大家感受一下:

       小说对我来说吸引力是很大的,属于开个头儿就停不下来那种,不看完就难受,熬夜通宵的情况也不是没有(年轻不懂事,熬夜坏身体)。算法是啥,跟数据结构一样抽象难懂啊。难道算法真的也能像小说一样吸引人吗?当时我翻开目录:恩,很全,看的话会学到很多东西。然后看了第一章:FacadeBook通讯录的例子,图解生动详细,看懂了,一点也不难理解,还有趣。于是愉快的决定看这本书啦(感谢杨倩推荐的书)。上一个叙事,大家感受一下:

       直到最后一天连续把第十章和第十一章看完了——熬夜看完的,停不下来。(/(ㄒoㄒ)/~~为了身体健康,我再也不睡前看这么有趣的书了)

       下面总结了一下书中内容:

       看这个书是在有一定基础上看的,对于数组,链表,栈,队列,树,图等数据结构有初步的了解。对于二叉查找算法、排序比较了解,动态规划,贪心算法,递归等算法也有初步了解,不过没搞清楚,软考中接触过又模糊了。因此,这本书给带给我很多的收获:

       1、对散列表这种数据结构理解了。

       2、广度优先搜索算法、动态规划、贪婪算法搞清楚了。狄克斯特拉算法还没搞清楚。

       3、对算法有了系统的了解,用算法解决实际问题有了思路,且明确了算法的研究方向。

       4、把算法和数据结构结合了起来。

       5、当然还有一个附带作用:对算法的兴趣又加深了一些。

知识点小结:

       散列表(Hash table,也叫哈希表)

是一种由 散列函数 和 数组 构成的数据结构。散列函数用于做映射,数组用于存储记录。是根据(Key)而直接访问在内存存储位置的数据结构散列函数:输入任何一个字符串,都能返回一个int值。而且输入相同的字符串,返回相同的值。这个int值就作为数组的下标,用来表示字符串的存储位置,然后把字符串存到数组相应的位置。

       广度优先搜索算法(breadth-first search,BFS):

       解决图中的最短路径问题。图是有向图,从开始节点,一层一层查找。同一层的各个节点之间顺序无所谓,因为从开始节点到它们的路径是一样的。直到找到目的节点,此时目的节点所在的层数就是要找的最短路径。

       动态规划:

       动态规划是通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划能够解决子问题并使用这些答案来解决大问题。但是仅当每个子问题都离散的,即不依赖于其他子问题时,动态规划才管用。需要用填充网格的方式解决动态规划。

       贪婪算法:

       是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。最终会得到一个近似解,不一定是最优解,但是效率高。


总结:

       开卷有益。不断总结,编织知识网。


相关文章
|
4月前
|
算法
算法题(8)
算法题(8)
18 4
|
算法 Java 程序员
算法学习
算法学习
56 2
|
机器学习/深度学习 存储 算法
01 算法
01 算法
66 0
|
算法
转:johnson算法的现实意义
Johnson算法是一种用于解决边数与节点数之间关系为O(n^2)的带权图的最短路径问题的算法。它是一种结合了Dijkstra算法和Bellman-Ford算法的技术,通过使用一个负权重的环检测器来消除负权重的影响。这种算法的时间复杂度为O(n^2+m log n)。
153 1
|
机器学习/深度学习 人工智能 算法
秒懂算法 | 尺取法
尺取法(又称为:双指针、two pointers),是算法竞赛中一个常用的优化技巧,用来解决序列的区间问题,操作简单、容易编程。 本篇介绍了尺取法的概念、反向扫描、同向扫描、模板、典型题目。
387 1
秒懂算法 | 尺取法
|
机器学习/深度学习 人工智能 算法
秒懂算法 | 莫队算法
本篇介绍了莫队算法的几何意义、基本莫队、带修改莫队以及树上莫队的相关内容。
479 0
|
算法
【21天算法学习】算法基础介绍
【21天算法学习】算法基础介绍
80 0
|
算法
蚂群算法
蚂群算法
108 0
蚂群算法

热门文章

最新文章