由于 5月份要软考,于是乎便开始了我的软考复习之路。到现在为止开始复习也有两周了。还有一个半月
的时间,其中还要考一门考试。时间也是非常紧的了。
从软考的复习看来,为什么要把数据结构放在第一位复习呢?原来数据结构不仅是一般程序设计的基础,而
且是设计和实现编译程序、操作系统、数据库系统以及其他系统程序的重要基础。并且计算机本来就是对信息的
加工处理的,数据只有在执行之后才有意义,所以先了解了数据的存储结构,然后再步步深入进而更深入学习进
程等知识。本篇文章简单介绍了数据结构的基本知识,大概框图,整理思路。
数据结构是计算机存储、处理数据。其中根据数据结构的内容也能理解数据结构是数据的存储,组织数据的
方式。其中数据通过不同的方式存放在计算机中,进而数据的结构直接影响算法的选择和效率。了解了这些之后
就来看看数据结构的内容吧。
数据结构的分类
逻辑结构是数据元素之间的逻辑关系,即数据元素之间的关联方式或邻接关系。
存储结构是逻辑结构在计算机中的实现。
结构 |
特点 |
存储方法 |
基本操作 |
线性表 |
线性表是最简单、最基本、也是最常用的一种线性结构 |
顺序存储和链式存储 |
插入、删除和检索等 |
树 |
对具有层次结构的数据需要用树形结构来描述,树形结构可以表示更复杂的数据 |
顺序存储和链式存储 |
查找、插入、删除 |
图 |
结点之间的邻接关系可以是任意的。可以描述多种复杂的数据对象,应用较为广泛 |
邻接矩阵、邻接表(顺序存储和链式存储的结合) |
搜索 |
Hash表 |
十分实用的查找技术,具有极高的查找效率 |
散列存储 |
查找 |
算法
算法的设计取决于逻辑结构,而实现依赖于采用的存储结构。
查找算法
算法 |
特点 |
优点 |
缺点 |
平均查找长度 |
适用范围 |
顺序查找 |
顺序比对当前结点与关键字是否相等 |
实现起来简单方便,逐个查询 |
效率不高 |
(n+1)/2 |
|
二分查找 |
每次查找中我们都把表的长度减半 |
更节省时间和空间 |
二分查找要求表元素是排好序的 |
lg(n+1)-1 |
只是用于顺序存储结构 |
分块查找 |
由一个索引表和一个顺序表组成 |
有索引表,查找速度快 |
数据元素的排序和索引顺序表的分块是要额外花时间的 |
(分块查找索引表)平均查找长度=Log2(n/s+1)+s/2
(顺序查找索引表)平均查找长度=(S2+2S+n)/(2S) |
介于顺序查找和二分查找之间 |
排序算法
排序算法的分类如上所示,学习这几个算法,首先要了解每个算法的特点、优缺点、性能(时间复杂度和空
间复杂度)、稳定性等特点就能很好掌握,区分。
总结
由上面的内容可以看出计算机算法与数据的结构密切相关,如上图,每种算法都有适用的数据结构,也就
是算法无不依附于具体的数据结构,数据结构直接关系到算法的选择和效率。
通过写这篇文章,发现了虽然是自考学过,但是还是不能大意,还需要计划,做好总结,编织知识网,一点
点去积累。这只是一个开始。