前言

近年来,随着社会关注度的提升和神经网络关键算法的不断突破,人工智能领域的发展取得了长足的进步,各种AI产品的出现极大地丰富了人们的生活。与此同时,培养青少年对人工智能学科的兴趣、促进青少年对人工智能学科的学习也得到了教育界的认可。对于初学者而言,想要理解、掌握人工智能技术,良好的编程和算法基础是不可或缺的。“九层之台起于垒土”,只有打好基础,才能在以后的学习中如鱼得水。

那什么是算法呢?就让我们一起来揭开它神秘的面纱吧!

设计计算机最开始的目的,是为了解决一些复杂、工作量大的数值计算问题,计算机在最初是一个数值计算工具。而随着计算机的计算能力一步步提升,如今的计算机已经可以完成除了简单的数值计算外的很多复杂问题。在计算机解决问题时,应该先从具体问题中抽象出一个适当的数据模型,设计出一个解此数据模型的算法,然后再编写程序,得到一个实际的软件。就像解决数学应用题一样,首先要将现实问题转化为对应的数学问题,再采用相应的数学方法,来解决问题。而问题的转化和数学方法的设计,就涉及了数据结构和算法的概念。数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作。算法是为求解一个问题需要遵循的被清楚指定的简单指令的集合。通过采用合理的数据结构和算法编写程序,就可以使计算机解决好一个实际问题。随着近年来面向对象编程思想的广泛应用,现今的编程工作对所采用的数据结构与算法的简洁性、高效性、安全性更加看重,如果说编程语言是剑客手上的剑,那数据结构和算法就是与之配套的剑法。不会剑法,有再好的剑,也发挥不出多少威力。

数据结构是计算机科学与技术专业、计算机信息管理与应用专业、电子信息等专业的基础课程,也是核心课程。所有的计算机系统软件和应用软件在开发过程中都要用到各种类型的数据结构。因此,要想运用计算机来解决实际问题,仅掌握计算机程序设计语言是难以应付复杂的课题的,要想有效地使用计算机、充分发挥计算机的性能,还必须学习和掌握好数据结构的有关知识。夯实“数据结构”这门课程的基础,对于学习计算机专业的其他课程,如操作系统、数据库管理系统、软件工程、编译原理、人工智能、图视学等都是十分有益的。

本书介绍了一些常用的、基础的数据结构和算法,引导读者理解计算机解决问题的方式,并使读者对计算机的工作原理有一个大体的认知,相信在学习了本书以后,读者可以使用计算机编程技术解决一些复杂的应用问题。

编者