前言
从程序设计语言实践的角度而言,算法是有志从事信息技术领域工作的专业人员必须学习的一门基础理论课程。无论你采用哪一种程序设计语言编写程序,要使设计的程序能快速而高效地完成预定的任务,算法是一个关键因素。
本书内容
市面上许多与算法相关的图书会介绍大量的理论或者讲解表达算法的核心概念,但是这类书缺乏完整的程序设计范例,因而对于第一次接触算法的初学者来说,将算法运用于实际应用就成了一道跨不过的鸿沟。为了帮助更多人用比较轻松的方式了解各种算法和各种经典数学问题的求解方法,本书包括了枚举算法、分治算法、贪心算法、试探算法、迭代算法;线性表、队列和栈;二叉树、霍夫曼树;图的遍历、图的连通性、寻求最短路径;查找算法;内部排序法、插入排序法、交换类排序法、选择排序法、归并排序法、基数排序法;经典的数据结构问题,如约瑟夫环、大整数运算、顺序表的处理、链表的基本操作、基于列表实现二叉树、实现AVL树、使用二维数组生成有向图;经典数学问题的解决,如利用递归算法获取斐波那契数列前n项的值、通过多个进程验证哥德巴赫猜想、百钱买百鸡、素数问题、埃及分数式等。
为了让读者学以致用,每讲一个算法,同时都会给出具体的实例和运行的效果图。同时使用Python实现算法,以期能将各种算法真正应用在学习者将来的程序设计中。因此,这是一本学习算法的入门书。
本书特色
(1)以“入门到精通”的写作方法构建内容,让读者入门容易。
为了使读者能够完全看懂本书的内容,本书遵循“从入门到精通”基础类图书的写法,循序渐进地讲解算法的知识。
(2)破解语言难点,以“技术解惑”贯穿全书,绕过学习中的陷阱。
为了帮助读者学懂算法,每章都会有“技术解惑”模块,让读者知其然又知其所以然。
(3)书中包含大量典型实例。
书中有大量实例,通过这些实例的练习,读者有更多的实践演练机会。
(4)通过QQ群和网站论坛实现教学互动,形成互帮互学的朋友圈。
本书作者为了方便给读者答疑,特地提供了网站论坛、QQ群等技术支持,并且随时在线与读者互动。让大家在互学互帮中形成一个良好的学习编程的氛围。
本书的论坛是toppr网站(网站后缀名为.net)。
本书的QQ群是292693408。
本书读者对象
· 初学编程的自学者
· 计算机相关专业的教师和学生
· 程序开发人员
· 相关培训机构的教师和学员
致谢
在编写过程中,本书得到了人民邮电出版社编辑的大力支持,正是各位编辑的敬业和高效,才使得本书能够在这么短的时间内出版。另外,十分感谢我的家人给予的巨大支持。本人水平毕竟有限,书中纰漏之处在所难免,诚请读者提出意见或建议。编辑联系邮箱是zhangtao@ptpress.com.cn。
最后感谢读者购买本书,希望本书能成为读者编程道路上的挚友,祝读者阅读快乐!
作者