返回
漫画算法 — 算法之旅的序曲
Android
2024-01-08 10:40:09
《漫画算法》读后笔记(一)
《漫画算法—小灰的算法之旅》是一本非常有趣的算法入门书籍。它以漫画的形式讲述了算法的故事,让读者在轻松愉快的阅读中理解算法的概念和应用。第一次看这本书的时候,我被它的内容深深吸引,一口气读完了整本书。但读完之后,我发现自己对算法的理解还是比较浅显的。
于是我决定再重温一遍这本书,这次我打算做一些笔记,以便加深我对算法知识的理解。同时,我也希望通过我的笔记,能够对没有看过这本书的朋友提供一些帮助。
在第一篇笔记中,我将主要介绍算法的基础知识和栈的应用。
算法基础
算法是解决问题的方法。它是一系列明确定义的指令,告诉计算机如何一步一步地解决问题。算法的基本要素包括:
- 输入: 算法需要输入一些数据才能工作。
- 输出: 算法会产生一些输出,这些输出是输入数据的处理结果。
- 步骤: 算法由一系列步骤组成,这些步骤告诉计算机如何处理输入数据以得到输出。
算法的效率非常重要。一个好的算法能够快速地解决问题,而一个坏的算法可能需要很长时间才能解决问题。算法的效率可以通过时间复杂度和空间复杂度来衡量。
- 时间复杂度: 时间复杂度是指算法运行所需的时间。它通常用大O符号来表示。
- 空间复杂度: 空间复杂度是指算法运行所需的内存空间。它也通常用大O符号来表示。
栈的应用
栈是一种数据结构,它遵循后进先出的原则(LIFO)。这意味着最后进入栈的数据是最先出来的数据。栈的应用非常广泛,比如:
- 历史记录管理: 栈可以用来管理历史记录,比如浏览器的返回和前进操作。
- 漫画阅读: 漫画阅读软件通常使用栈来管理漫画的阅读顺序。
- 计算机图形: 计算机图形中的图形渲染过程也使用了栈。
- 虚拟机: 虚拟机也使用了栈来管理函数的调用和返回。
在本章中,我们还学习了漫画算法中蕴含的数学原理。这些原理包括:
- 递归: 递归是一种解决问题的策略,它将一个大问题分解成一系列较小的子问题,然后递归地解决这些子问题。
- 迭代: 迭代是一种解决问题的策略,它通过重复执行一个操作来解决问题。
- 数学归纳法: 数学归纳法是一种证明数学命题的方法,它通过证明一个命题对最小的自然数成立,然后假设命题对某个自然数成立,再证明命题对下一个自然数也成立,从而证明命题对所有自然数都成立。
漫画算法是一本非常适合算法初学者的书籍。它用漫画的形式讲解了算法的概念和应用,让读者在轻松愉快的阅读中理解算法。我希望我的笔记能够对想要了解算法基础和栈应用的读者有所帮助。