出版时间:2000-01 出版社:机械工业出版社 作者:(美)Sartaj Sahni 页数:535 译者:汪诗林,孙晓东
Tag标签:无
前言
在可视化程序设计平台广泛流行和应用的今天,程序设计不再是一件神秘的、专业性的工作,很多非计算机专业的人员都可以亲自动手设计应用程序。这似乎让人觉得,只要掌握了一门可视化程序设计语言,人人都可以成为编程高手,但事实并非如此。要想成为一个熟练的专业化程序设计人员,他(她)至少应该满足以下三个条件:一是能够熟练地选择和设计各种数据结构和算法,二是熟练掌握一门程序设计语言,三是熟知应用领域的相关知识。其中后两个条件比较容易实现,而第一个条件则需要花相当的时间和精力才能达到,它是区分一个程序设计人员水平高低的重要标志。之所以如此,是因为在绝大多数应用程序中都需要广泛使用各种各样的数据结构和算法。缺少数据结构和算法的深厚功底,很难设计出高水平的具有专业水准的应用程序。 本书的作者SartajSahni博士,多年来一直从事数据结构和算法方面的研究和教育工作,具有丰富的教学经验,曾获得IEEE计算机分会1997年TaylorL.Booth教育奖。他撰写了多部有关数据结构和算法方面的著作,本书是他在该领域为广大读者奉献的又一力作。 全书共包含三个部分,第一部分主要回顾一些重要的c++程序设计概念以及算法分析与评价的方法。第二部分首先对各种数据描述方法进行了精辟地概括,然后依次介绍了数组、矩阵、堆栈、队列、字典、二叉树、优先队列、竞赛树和图等基本数据结构,对于每一种数据结构都分别采用若干个来自不同领域的应用实例进行了具体的演示。第三部分重点介绍了一些常用的算法设计方法及应用,如贪婪算法、分而治之算法、动态规划方法、回溯算法和分枝定界算法。 本书的最大特色就是强调应用。通过现实生活中的许多应用实例具体演示了书中所介绍的各种数据结构和算法设计方法。根据实例,读者不但可以印证许多基本概念,而且能加深对它们的理解,从而更好地掌握相应的数据结构和算法并能达到熟练应用。通过把应用与理论知识紧密结合,极大地激发了读者学习数据结构和算法的兴趣。 如果你是一名程序设计新手,本书可以为你架起一座桥梁,使你如愿以偿地跨人专业程序设计人员的行列;如果你已经是一名专业程序设计人员,本书可以使你的程序设计水平更上一层楼。当然,如果你是一名计算机专业的在校学生,本书将是一本非常理想的关于数据结构和算法课程的教材或参考书。 参加本书翻译工作的有汪诗林、孙晓东、蒋艳凰、孙海燕、刘娜、郑倩冰、史军慧、陈海燕,由王广芳教授和汪诗林博士完成全书的审校工作。
内容概要
本书是关于计算机科学与工程领域的基础性研究科目之一——数据结构与算法的专著。 本书在简要回顾了基本的C++ 程序设计概念的基础上,全面系统地介绍了队列、堆栈、树、图等基本数据结构,以及贪婪算法、分而治之算法、分枝定界算法等多种算法设计方法,为数据结构与算法的继续学习和研究奠定了一个坚实的基础。更为可贵的是,本书不仅仅介绍了理论知识,还提供了50多个应用实例及600多道练习题。 本书内容广博权威,结构清晰合理,是一本全新的有关数据结构与算法的教材,对于计算机科学与工程领域的从业人员也是一本很好的参考书。
作者简介
Sartaj Sahni在 Cronell大学获得硕士和博士学位。曾任教于明尼苏达大学。目前是佛罗里达大学计逄机与信息科学工程系主任。Sahni教授在数据结构与算法领域的研究和教学方面享有世界声誉,因此当选为IEEE和ACM两会会士以及欧洲科学院院士,并获得IEEE计算机学会的Taylor L.
书籍目录
译者序前言第一部分 预备知识 第1章 C++程序设计 1.1 引言 1.2 函数与参数 1.2.1 传值参数 1.2.2 模板函数 1.2.3 引用参数 1.2.4 常量引用参数 1.2.5 返回值 1.2.6 递归函数 1.3 动态存储分配 1.3.1 操作符new 1.3.2 一维数组 1.3.3 异常处理 1.3.4 操作符delete 1.3.5 二维数组 1.4 类 1.4.1 类Currency 1.4.2 使用不同的描述方法 1.4.3 操作符重载 1.4.4 引发异常 1.4.5 友元和保护类成员 1.4.6 增加#ifndef, #define和#endif语句 1.5 测试与调试 1.5.1 什么是测试 1.5.2 设计测试数据 1.5.3 调试 1.6 参考及推荐读物 第2章 程序性能 2.1 引言 2.2 空间复杂性 2.2.1 空间复杂性的组成 2.2.2 举例 2.3 时间复杂性 2.3.1 时间复杂性的组成 2.3.2 操作计数 2.3.3 执行步数 2.4 渐进符号(O、 健?、 o) 2.4.1 大写O符号 2.4.2 椒?? 2.4.3 符号 2.4.4 小写o符号 2.4.5 特性 2.4.6 复杂性分析举例 2.5 实际复杂性 2.6 性能测量 2.6.1 选择实例的大小 2.6.2 设计测试数据 2.6.3 进行实验 2.7 参考及推荐读物 第二部分 数据结构 第3章 数据描述 …… 第4章 数组和矩阵 第5章 堆栈 第6章 队列 第7章 跳表和散列 第8章 二叉树和其他树 第9章 优先队列 第10章 竞赛树 第11章 搜索树 第12章 图 第三部分 算法设计方法 第13章 贪婪算法 第14章 分而治之算法 第15章 动态规划 第16章 回溯 第17章 分枝定界
媒体关注与评论
“纵览全书可以看出作者具有丰富的教材编写经验。它是一本新的、有关数据结构和算法的教材,适合于当前计算机本科教学的需要。” ——Sang W.Lee,密歇根大学 “注重应用不仅可以使课堂教学更生动,而且可以激励学生投身于相关的应用。” ——Yu Lo C.Chang,新汉普郡大学
图书封面
图书标签Tags
无
评论、评分、阅读与下载