对数据结构一点一小小的理解(一)
2017-05-08 21:33
316 查看
作为一位大三的学生,近期在复习《数据结构与算法》这本教材;以下是我对复习内容的一点小小的理解
什么是数据结构?
以下的两个案例可以清楚的进行解释:
1.银行开户
(1)开户操作(插入):时间效率要求不高(几分钟都行)
(2)存取操作(插入+查找):查找(唯一匹配(哈希表))时间效率要求高(几秒钟)
(3)销户操作(删除):时间效率可以低一些
2.城市数据库
通过名字查找城市:唯一匹配并且快速显示
查找满足某个值的范围内的城市:区间匹配(哈希表做不到,效率低,选择B+树)
3.选择数据结构:(插入删除操作频率,已有数据访问按照一个什么样的顺序访问)
(1)是在应用的开头插入操作,还是在过程中不断地插入删除(例子:入校等级学籍信息)
(2)数据是否可以删除:是经常还是不经常
(3)数据访问的顺序是不是一个一个挨着访问的,还是随机的来找一个信息(银行账户信息)。
什么是类型,数据类型,抽象数据类型?
类型:值的集合(1,-1)
数据类型:除了值之外还要考虑他们的操作(数的加减乘除)
抽象数据类型(ADT):数据类型把它实现为一个构建的整体
例如车辆;刹车系统,发动机(不管它内部的东西)(提供的数据有整数,提供的数据类型有加减乘除一类的)
有面向对象中类这种感觉:以及面向对象中封装的概念
problem:需要处理的一个任务:特定输入和特定的输出以及资源的使用要求(类似数学中的函数)
algorithms:算法:解决问题步骤。输入到输出的一个映射
满足以下属性:1.正确的(输入到输出的一个映射是正确的)2.计算机可以执行的步骤3.每一步需要非常的确。
什么是数据结构?
以下的两个案例可以清楚的进行解释:
1.银行开户
(1)开户操作(插入):时间效率要求不高(几分钟都行)
(2)存取操作(插入+查找):查找(唯一匹配(哈希表))时间效率要求高(几秒钟)
(3)销户操作(删除):时间效率可以低一些
2.城市数据库
通过名字查找城市:唯一匹配并且快速显示
查找满足某个值的范围内的城市:区间匹配(哈希表做不到,效率低,选择B+树)
3.选择数据结构:(插入删除操作频率,已有数据访问按照一个什么样的顺序访问)
(1)是在应用的开头插入操作,还是在过程中不断地插入删除(例子:入校等级学籍信息)
(2)数据是否可以删除:是经常还是不经常
(3)数据访问的顺序是不是一个一个挨着访问的,还是随机的来找一个信息(银行账户信息)。
什么是类型,数据类型,抽象数据类型?
类型:值的集合(1,-1)
数据类型:除了值之外还要考虑他们的操作(数的加减乘除)
抽象数据类型(ADT):数据类型把它实现为一个构建的整体
例如车辆;刹车系统,发动机(不管它内部的东西)(提供的数据有整数,提供的数据类型有加减乘除一类的)
有面向对象中类这种感觉:以及面向对象中封装的概念
problem:需要处理的一个任务:特定输入和特定的输出以及资源的使用要求(类似数学中的函数)
algorithms:算法:解决问题步骤。输入到输出的一个映射
满足以下属性:1.正确的(输入到输出的一个映射是正确的)2.计算机可以执行的步骤3.每一步需要非常的确。
相关文章推荐
- 对数据结构一点一小小的理解(四)——线性表
- 对数据结构一点一小小的理解(二)——算法分析部分
- 对数据结构一点一小小的理解(五)——栈
- 对数据结构一点一小小的理解(三)——C++ 模板库
- 对数据结构一点一小小的理解(七)——二叉树
- 数据结构之于开发过程的一点理解
- Quartz 一点小小的理解
- 『AngularJS』一点小小的理解
- spring的一点小小理解
- 数组指针和指针数组的一点小小理解
- AngularJS』一点小小的理解
- 对m_hWnd和this指针的一点小小理解
- 分页机制,一点小小的理解,os 于渊的树上的
- c++继承和多态的一点小小的理解
- 『AngularJS』一点小小的理解
- 数据结构之于开发过程的一点理解
- linux 启动过程以及 /etc/rc.d/init.d/目录的一点理解
- JAVA初学,对面向对象的一点理解
- 关于嵌入式中断的一点理解
- 我对adaboost的一点理解