算法的乐趣 · 第五节
《算法的乐趣》第五节
作者讲述了自己编写第一个算法的经历:为光栅图像矢量化软件做预处理时,需消除二值位图上的污点。
作者讲述了自己编写第一个算法的经历:为光栅图像矢量化软件做预处理时,需消除二值位图上的污点。他观察到有效图形至少由5个点相连构成,于是定义相连点少于5的即为污点,通过递归向8个方向搜索连通点并计数,超过4个则保留,否则清除。该算法测试效果良好,但因会误删细小虚线和点划线,最终未被采用。作者由此认识到,程序员的任务就是设计算法解决问题,失败也比放弃强。
随后,作者探讨算法的乐趣:设计算法需先为现实问题建立数学模型(对简单问题即设计合适的数据结构),再确定输入输出,最后设计操作步骤。他将乐趣分为三层次:用现成算法解决问题的成就感、掌握有趣算法原理、自行设计算法供他人使用。最后谈及算法与代码的关系,认为好代码应漂亮、整洁,代码实现本身也值得研究,本章为全书开篇总结。