本书缘起
一家世界**的IT公司给其面试者出了如下两道测试题。
1.一辆有7节车厢的列车在星期五下午18点17分离开车站,并以50 km/h的速度行驶。现在是**,请问你要去哪里?
2.股票A目前的报价是100元。3个月后,这个价钱可能涨到120元,也可能跌到90元。如果现在给你一次机会允许你用110元钱在接下来的3个月内买这个股票,你将如何使用这110元钱。请将你的决策过程告诉我们。
无独有偶,许多世界**的软件公司都喜欢在面试时问一些考查应试者思维能力的问题,为什么呢?道理很简单,单纯掌握一门编程语言并不足以编写出好的程序。重要的是,掌握思考问题的方法和解决问题的策略。
古语云:“授人以鱼,不如授人以渔。”如果说吃鱼是目的,那么钓鱼就是手段。尽管一条鱼能解一时之饥,但却不能解长久之饥;如果想永远有鱼吃,那就要学会钓鱼的方法。这就是作者写作本书的目的和动机。
本书不仅是一本向程序员传授专业技术的书,更是一本教导人们如何思考问题的书。
本书对象
数据结构和算法是计算机程序设计领域的重要理论和技术基础,是计算机学科的核心课程,也是计算机科学研究的基础方向。数据结构不但为数据存储和问题解决提供逻辑结构基础,还可以提供一种抽象现实世界的思维方式,即使非计算机专业的人员学习和了解它也有助于发散思维,激发创意。而算法设计则在提供实际问题解决方案的同时,帮助训练人脑对问题的抽象能力和逻辑思维能力,因此学习这方面的知识也大有裨益。