读书笔记

最近学习了一本介绍算法的课外书籍,书名叫《我的第一本算法书》,这本书偏向于算法入门吧,介绍了一些较为基础的算法,相较于课本介绍的算法读起来更为简单、流畅,读完以后我也是对基本的算法原理和常用的数据结构有了一个较为清晰的了解。
这本书采用大量图片,通过详细的分步讲解,以直观、易懂的方式展现了7个数据结构和26个基础算法的基本原理。第1章介绍了链表、数组、栈等7个数据结构;从第2章到第7章,分别介绍了和排序、查找、图论、安全、聚类等相关的26个基础算法,内容涉及冒泡排序、二分查找、广度优先搜索、哈希函数、迪菲 - 赫尔曼密钥交换、k-means 算法等。这本书没有枯燥的理论和复杂的公式,而是通过大量的步骤图帮助读者加深对数据结构原理和算法执行过程的理解,便于学习和记忆。
算法是解决问题的计算步骤,用于编写程序之前。要想执行高效的算法,还需要使用合适的数据结构。使用不同的算法解决同一个问题时,就算得到的结果是一样的,算法之间的性质也有很大的差异。比如,某个算法的运行时间很短,但需要占用大量内存;而另一个算法运行时间较长,但内存资源占用较少。学习各种算法可以使我们在编程时有更多的选择。通过这门课和这本书的学习,我深刻地明白到,成为优秀程序员的必要条件之一,就是可以根据应用场景选择最合适的算法。
最后稍微总结了算法求解的基本步骤:
1.理解问题:最基础也是重要的一步,决定着算法的成败
2.了解计算设备的性能:根据不同计算设备的性能往往需要不同的算法策略(顺序算法、并行算法)
3.在精确解法和近似解间做选择:对于一些无法在目前或者在时间限制内找到精确解法的问题,我们就必须在两者之间做出选择
4.确定适当的数据结构:我们都知道程序=算法+数据结构
5.选择恰当的算法:即根据问题和数据结构本身选择恰当的算法,可以是成熟的,也可以是自己开创的
6.详细的表述算法:伪代码是一个不错的选择
7.证明算法的正确性:不光是算法本身的正确性,还必须有“有限时间内”这个条件限制
8.分析算法:时间效率、空间效率角度去研究和分析改进算法
9.实现算法并调试

你可能感兴趣的:(读书笔记)