
如果现在让你想出几个武林高手,你会想到谁?是武侠小说中的乔峰、张无忌、杨过、令狐冲?还是现实世界中的黄飞鸿、霍元甲、叶问、李小龙?
他们的武功隶属不同门派,各有各的特色,也各有各的强点。但是,无论高手们修习的是哪一种武功,他们都会经历一个练武环节的根基动作——扎马步。
我们所热爱的计算机技术,里面同样是“门派”众多,Java、C++、Python、Swift、Go等,每个“门派”都有自己最擅长的“武功”。而为我们打下基础,并能帮助我们提升“武功造诣”的,毫无疑问就是算法。它,就是计算机世界的“马步”。

我们用编程解决一个又一个问题,解决问题的效率在很大程度上和我们的计算思维挂钩。有了良好的计算思维,我们才能知道如何将现实问题转化为计算机模型,才能知道什么样的模型是可解的且高效的。这种计算思维,其根基就是算法。
算法是计算机技术的核心,也逐渐成为当前学习以及教学过程中的要点。南京大学计算机系教授陈道蓄与北京大学计算机系教授李晓明,结合多年教学与科研经验,挖掘算法学习中的难点与重点,创作了关于算法的科普图书——《算法漫步》。用生活案例、益智游戏、经典算法问题以及经典数学问题做引导,以问题为导向,带领我们一步一步饶有兴趣地走入算法。
只要你掌握了高中及以上教育的知识,并对数学和计算机有兴趣,志在计算机领域持续探索,那么相信这本书一定能让你收获颇丰。

这本书中共包含了24个算法问题,为了满足不同学习阶段的读者的学习需求,这些问题彼此之间相互独立,作者还特别注明了难度指数,以便读者根据自身情况以任意顺序阅读。
同时,本书尽量回避严格的数学推导,而将重点放在算法描述、算法分析等方面,帮助读者培养算法逻辑,加强算法思维。这同时也降低了学习门槛,让读者能读得下去、学得透彻。

在算法描述中,自然语言伪代码和Python形式代码的使用,能让读者更易理解算法,而不会被编程语言的规则所束缚,“编程语言千举万变,其道一也,便为算法”。
第一篇(第1~4节)通过游戏引出算法,讲解了求最大公约数、欧拉回路、深度优先搜索、启发式算法、异或运算等基础理论和基础知识;
第二篇(第6~13节)介绍了多个计算机基础算法,包括查找、排序、连通、数据压缩、最短路径、最大流量、凸包计算;
第三篇(第14~21节)将算法带到我们的生活中,看看在选举、分类、聚类、投资、匹配、调度、密码、社会网络中蕴含了哪些算法问题;
第四篇(第22~24节)介绍了斐波那契数列、大数乘法、高次方程求解这些数学问题与算法的联系,以及算法如何帮助解决“数学上不可能有解”的问题。
希望热爱计算机的你,能够打开这本“武功秘籍”,继续精进自己的计算机技术,将来成为计算机界的“武林高手”。

陈道蓄(右)
南京大学计算机科学与技术系教授,中国计算机学会会士。从事计算机软件教学与科研工作四十年,承担算法类基础课教学任务多年。因计算机核心基础课程教学改革成果获国家级优秀教学成果奖二等奖;因泛在计算平台技术研究成果获江苏省科技奖一等奖。曾获中国计算机学会杰出教育奖、南京大学教学终身成就奖,三次被学生推选为“南京大学我最喜爱的教师”。
李晓明(左)
北京大学瑞声慕课讲席教授,中国计算机学会会士。曾因主持研发中国高校影响力最大的搜索引擎“天网搜索”获中国计算机学会王选奖;因创设与推广交叉学科课程“社会科学中的计算思维方法”获北京市教学成果一等奖;因倡导与推动慕课在中国的兴起与发展获中国计算机学会杰出教育奖、中国教师发展基金会杰出教学奖。

扫码购买《算法漫步》