数据结构 -- 简单体会
2016-06-22 11:26
375 查看
一、数据结构的作用
对于数据结构的作用,刚开始不是很清晰,随着学习的深入,逐渐明白数据结构的作用。数据结构:即为数据的组织结构。
1.为何数据需要组织结构?
1.1.当数据量增大时,需要进行组织。
以人物为例。(此处将人看做基本单位)(1) 远古时代,人们生活简单,不需要进行复杂的事物处理。各个个体相对是独立的。(数据是否存在独立的时期?)
(2) 随着社会的发展,活动变得复杂起来,个体单位不再那么得独立,于是在个体间产生了更多的联系。(程序中的数据并不是孤立的,而是相互联系的,他们共同服务于一个现实的事物,可能存在着某种制约的关系)
(3) 个体的职责也在发生变化(程序中 不同数据负责不同的事务,有的负责价格,有的负责重量,有的负责记忆状态 ...)
(4)于是,社会上有了不同的职业,分成一个又一个的群体,具有了一定的组织规律。例如:形成了学校组织,用来供一些相似的人员进行学习,同时各个紧密相关的人员形成一定的联系(老师,学生,教务人员等等),这种联系让相关人员走到了一起。(数据也是如此, 数据之间存在一定的联系,有些紧密,有些不紧密,借鉴于现实人类生活的现象,于是人们把这些紧密相关的数据进行组织起来,使其具有更高的抽象层次,更接近于人类对于现实世界的刻画,也更能反映出现实世界到程序世界的直观的映射。)
(5)那么数据组织起来之后有何好处呢?
正如人类社会一样,各部门集中起来,相关的集中起来,带来的好处是什么?
使相关元素之间的沟通更加方便(类似于高内聚,低耦合)。
使外界更加容易进行识别,更加能够准确定位,从而省去了外界人员搜索与一个人员紧密相关的另一个人员的时间精力等。
数据也如此,通过将数据组织起来,一方面形成一种内聚的形式,这种内聚,使得数据结构的内部的元素可以方便的找到与之相联系的事物。另一个方面,对于外界的使用者来说,使用者面对的不再是单纯的数据,数字,通过将数据放到数据结构中,放到一定的环境中(有了上下文),那么对于外界而言,这个东西才更加容易理解,节省了使用者建立数据之间联系的时间,精力(体现在代码中,为映射关系,逻辑制约的书写,数据结构使得逻辑的书写变得简单)。
这种组织成数据结构的做法,从某个角度讲,是将关系存储在了电脑之中,从而省去了开发人员费尽心思建立联系的这个过程。
2.数据结构与算法有何关系?
2.1.站在一个新的抽象层次进行算法编写
(1) 数据结构将算法的抽象层次进行了提升,从而使得编程人员可以站在更高的层次进行编程。(类似的,API也是对于问题的抽象)(2) 继续以人为例,当数据结构组织起来了之后。那么办一件事情(算法)就可以进行如下改进:
未使用组织结构情况:
办事 1: 找 人1 --> 找 人2 --> 找 人3 --> 找 人4 -->找 人5 -->找 人6
使用组织结构情况之后:
办事1 : 找 部门 1 --> 找 部门 2 --> 找 部门3
注意:
办事过程,这里在引入组织结构之后,过程被大大简化。
一个部门中可包含很多人。(数据结构中可包含多组数据)
2..2在计算机算法中分析数据结构与算法之间的关系
树结构 -->树的遍历图结构 --> 图的遍历
待续。。。
相关文章推荐
- HDU5320 Fan Li
- 《Java数据结构与算法》笔记-CH4-5不带计数字段的循环队列
- 数据结构 : Hash Table
- halcon学习笔记——(10)从数字图像基础到halcon数据结构概述
- 《Java数据结构与算法》笔记-CH4-4循环队列
- 数据结构知识点归纳
- 一步一步写平衡二叉树(AVL树)
- 9-12-哈希查找表/散列表-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版
- MySQL索引背后的数据结构及算法原理
- 《数据结构》创建二叉树
- 汇编实现排序——简单选择排序
- 数据结构 - 树和二叉树的基本运算实现
- Redis 数据结构
- Java数据结构和算法——数组、单向链表、双向链表
- 【数据结构与算法】十六 二叉树遍历 Breadth-First-Search 广度优先
- 面向对象的数据结构--链 list
- 数据结构实验之链表六:有序链表的建立
- Java 数据结构之有序数组,二分查找法
- 9-11-Trie树/字典树/前缀树-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版
- 数据结构——栈和队列