北京治疗白癜风权威专家 https://jbk.39.net/yiyuanzaixian/bjzkbdfyy/nxbdf/写在前面
算法和数据结构是计算机科学的核心内容。作为程序员,编程是我们的实战项目。然而,写出程序还不够。一个程序在应对一些大型而复杂的情况时,会耗费大量的时间。我们可以很容易写出一个从文件中找到一个词的程序,比如逐词扫描,看是否相符。但如果我们的文件有几十TB,而且要从文件中找到上百个词,逐个扫描的办法就几乎不可行。我们需要优化程序,以便我们的程序可以应对复杂问题。算法研究解决问题的方法,而数据结构则是设计一种更好的组织数据和使用数据的方式。两者有很强的相互依赖关系,所以往往放在一起讨论。
数据结构和算法
主要内容展示
第1章综述
一个各主题的总体印象并介绍少量后面要用到的术语。对于那些对面向对象编程不太熟悉的读者,本章总结了一些相关的知识。
第2章数组
集中讨论数组。这里面包含有两层意思:如何使用类来对数据存储结构进行封装和类的接口。其中包括数组和有序数组的查找、插入、删除、线性查找和二分查找。
第3章简单排序
介绍三种简单的(但是慢速的)排序方法:冒泡排序、选择排序和插入排序。
第4章栈和队列
涉及到三种可以被认为是抽象数据类型(ADT)的数据结构:栈、队和优先级队列。
第5章链表
介绍了链表中的双向链表和双端链表。本章还解释了Java中被称作“无痛指针”的使用,并用一个专题applet演示了链表的插入、查找和删除是如何进行的。
第6章递归
这是书中仅有的非数据结构的几章之一。本章给出了大量的递归例子,包括汉诺塔问题和归并排序,它们都有相应的专题applet。
第7章高级排序
研究了几种高级的排序方法:希尔排序和快速排序。专题applet演示了希尔排序,快速排序的基础一一划分(paritioning)和两种形式的快速排序。
第8章二叉树
介绍了最简单最通用的树型结构:不平衡的二叉搜索树。一个专题applet演示了此类树的插入、删除和遍历是如何进行的。
第9章红-黑树
“红-黑树”解释了红-黑树,它是最有效的平衡树之一。
帮忙转发+