1. 什么是数据结构和算法?
  2. 学习后的好处是什么?
  3. 为什么不能只是用数组和for循环来处理数据?
  4. 何时何地使用在本书学到的只是才能算有意义?
  5. 数据结构和算法能起到什么作用?
  6. 数据结构的概述
  7. 一些定义
  8. 面向对象编程
  9. 软件工程
  10. 对于C++程序猿的Java
  11. Java数据结构的类库

数据结构和算法能起到什么作用?

数据结构:对计算机内存中(有时在磁盘中的)数据的一种安排。

数据结构包括:数组、链表、栈、二叉树、哈希表。

算法:对这些结构中的数据进行各种处理。

运用场景,解决的问题:

  • 现实世界数据存储
  • 程序猿的工具
  • 建模

现实世界数据存储:

        现实世界数据:那些描述处于计算机外部的物理实体的数据。

         问题:如何将旧式的索引卡片系统更新为计算机程序?

                    需要思考的问题:如何在计算机内存中安放数据?

                                                  所用的方法适用于100张卡片吗?

                                                  所用方法能够快速的插入新卡片和删除老卡片吗?

                                                  他能快速查找一张特定的卡片吗?

                                                  若想将卡片按照字母的顺序排列,又该如何去安排?

         程序员的工具:不为用户所接触的数据存储结构。比如:程序员经常将诸如栈、队列和优先级队列等结构当作工具来简化                                       程序或一些操作。

         现实世界的建模:有些数据结构能够直接对真实世界的情况构造建模。其中最重要的数据结构就是图,图可以表示某一工程中的任务安排关系,电路的连接等。

数据结构的概述:

             数据结构的特性:


数据结构

优点

缺点·

数组

插入快,如果知道下表,可以非常快的存取

查找慢,删除慢

有序数组

比无序的数组查找快

删除和插入慢,大小固定


提供后进先出方式的存取

存取其他项很慢

队列

提供先进先出方式的存取·

存取其他项很慢

链表

插入快,删除快

查找慢

二叉树

查找、插入、删除都快(如果树保持平衡)

删除算法复杂

红-黑树

查找、插入、删除都快。树总是平衡的

算法结构复杂

2-3-4 树

查找、插入、删除都快。树总是平衡的,类似的树对磁盘存储有用

算法复杂

哈希表

如果关键字已知则存取极快,插入快

删除慢,如果不知道关键字则很慢,对存储空间使用不充分


插入、删除快,对最大的数据项的存取很快

对其他的数据项存取慢


对现实世界建模·

有些算法慢且复杂

算法的概述:

 

  小  结
 数据结构是指数据在计算机内存空间中或磁盘中的组织形式。

正确选择数据结构会使程序的效率大大提高。

数据结构的例子有数组、栈和链表。

算法是完成特定任务的过程。

 在Java中,算法经常通过类的方法实现。

 本书中介绍的大部分数据结构和算法经常被用来建造数据库。

一些数据结构的用途是作为程序员的工具:它们帮助执行算法。

 其他数据结构可以模拟现实世界中的情况,例如城市之间的电话线网。

数据库是指由许多类似的记录组成的数据有储的集合。

  一条记录经常表示现实世界中的一个事物,例如一名雇员或一个汽车零件。

一条记录被分成字段。每个字段都存储了由这个记录所描述事物的一条特性。

一个关键字是一~条记录中的一.个字段,通过它可以对数据执行许多操作。例如,人事记录可以通过LastName字段进行排序。