数据结构与算法综述

 

什么是数据结构?

学习它们后会有什么好处?

为什么只使用数组和for循环来处理数据?

何时何地使用学到的知识才算有意义?

 

1.       数据结构的概述

 

数据结构是对计算机内存(有时在磁盘中)的数据的一种安排。数据结构包括数组,链表,,二叉树,哈希表

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

掌握这些知识我们能够解决哪些问题?大概有三类情况:

l          现实世界数据存储

l          程序员的工具    

l          建模

 

有些数据结构能直接对真实世界的情况构造模型。例如,队列模拟顾客在银行中排队等待的模型

 

数据结构的特性

数据结构

优点

缺点

数组

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

查找慢,删除慢,大小固定

有序数组

比无序的数组查找快

删除和查找慢,大小固定

提供后进先出方式的存取

存取其他项很慢

队列

提供先进先出方式的存取

存取其他项很慢

链表

插入快,删除快

查找慢

二叉树

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

删除算法复杂

-黑树

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

算法复杂

2-3-4

查找,删除,插入都很快。树总是平衡的。类似的树

对磁盘存储有用

算法复杂

哈希表

如果关键字已知则存取速度很快,插入快

删除慢,如果不知道关键字则存取

很慢,对存储空间使用不充分

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

对其他数据项存取慢

对现实世界建模

有些算法慢且复杂

 

ps:在这里对特性只能囫囵吞枣地吸收一下,具体的特性只能靠以后学习中领悟了)

数据结构除了数组之外都可以被认为是抽象数据结构(ADT)。

 

2.        算法的概述

 

l         对大多数数据结构来说,都需要知道如何

l         插入一条新的数据

l         寻找某一特定的数据

l         删除某一特定的数据

l         以及如何迭代地访问某一数据结构中的各数据项,以便进行显示和其他操作

l         排序

l         递归

3一些定义

 

了解数据库的人,应该很容易的了解这些定义

记录(record)相当于数据库中的表,该记录有相关的 字段(filed)组成。在面向对象中语言中,记录常被

表示成为一个相对应的类。一个实例中各个变量表示不同的数据字段(data filed,C#中,称为字段(成员)

posted on 2007-12-24 22:18  飞舞的蒲公英  阅读(474)  评论(0)    收藏  举报