“算法设计”就是找出用计算机程序解决某一类问题的共同方法。
算法并不神秘,在我们的日常生活中处处可见。例如:打扑克时,我们会用排序的方法把扑克牌有序排好;又如在找零钱时,用不同零钱凑够特定金额。这其实就是一种贪心算法。我们每个人都已经掌握和使用过多种算法而不自知。
当我们听到“算法”这个词时,很自然地会想到数学。实际上,许多算法并不涉及复杂数学,而是更多地依赖基本逻辑。因此要学习好算法,我建议大家做好以下三点:
流程图是一种利用图像表示算法过程的绘图方法。它使用不同的图案代表算法过程不同阶段的操作。让我们可以直观认识算法的运行逻辑。是我们学习算法设计一个非常有用的工具。
图形 | 意义 | 图形 | 意义 |
---|---|---|---|
开始/结束模块 | 输入/输出模块 | ||
处理模块 | 路径方向 | ||
过程模块 | 分支模块 |
flowchart LR A(开始程序1) --> B[a=10,b=20] B --> C[c=a+b] C --> D[/输出c值/] D --> E(结束程序1)
flowchart TD A1(开始程序2) --> C1{x能整除2吗} C1 -- YES --> D1[/输出x是偶数/] C1 -- NO --> E1[/输出x是奇数/] D1 --> F1[结束程序2] E1 --> F1[结束程序2]