数据结构与算法第二版(第一章)

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

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

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

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

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

运用场景,解决的问题:

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

现实世界数据存储:

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

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

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

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

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

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

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

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

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

数据结构的概述:

             数据结构的特性:

         

数据结构 优点 缺点·
数组 插入快,如果知道下表,可以非常快的存取 查找慢,删除慢
有序数组 比无序的数组查找快 删除和插入慢,大小固定
提供后进先出方式的存取 存取其他项很慢
队列 提供先进先出方式的存取· 存取其他项很慢
链表 插入快,删除快 查找慢
二叉树 查找、插入、删除都快(如果树保持平衡) 删除算法复杂
红-黑树 查找、插入、删除都快。树总是平衡的 算法结构复杂
2-3-4 树 查找、插入、删除都快。树总是平衡的,类似的树对磁盘存储有用 算法复杂
哈希表 如果关键字已知则存取极快,插入快 删除慢,如果不知道关键字则很慢,对存储空间使用不充分
插入、删除快,对最大的数据项的存取很快 对其他的数据项存取慢
对现实世界建模· 有些算法慢且复杂

算法的概述:

 

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

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

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

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

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

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

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

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

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

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

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

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

 

你可能感兴趣的:(数据结构)