数据结构的定义(Data Structure)
数据结构的基本概念
数据(Data) 是描述客观事物的数值、字符以及能输入机器且能被处理的各种符号集合。数据包含整型、实型、布尔型、图象、字符、声音等一切可以输入到计算机中的符号集合。
数据元素(Data Element) 是组成数据的基本单位 ,是数据集合的个体,在
计算机中通常作为一个整体进行考虑和处理
数据对象(Data Object) 是性质相同的数据元素的集合,是数据的一个子集
什么是数据结构 是相互之间存在一种或多种特定关系的数据元素的集合。或按照一定逻辑关系组织,并按一定存储方法存储的数据的集合,且需要定义一系列运算。逻辑结构、存储结构和运算合称为三要素
Data_Structure=(D, R)
其中,D—元素有限集,R—关系有限集
数据结构的研究内容
数据的逻辑结构
• 数据的逻辑结构从逻辑关系上描述数据,与数据的存储无关
• 数据的逻辑结构可以看作是从具体问题抽象出来的数据模型
• 逻辑结构主要分为 集合 线性 树 图
数据的存储结构
• 数据的存储结构(又叫物理结构)是逻辑结构用计算机语言的实现
• 数据的存储结构依赖于计算机语言
存储方式对比
• 顺序存储——借助元素在存储器中的相对位置来表示数据元素间的逻辑关系
• 链式存储——借助指示元素存储地址的指针表示数据元素间的逻辑关系
数据结构的内容
算法
算法的定义
• 算法——解决某一特定问题的具体步骤的描述,是指令的有限序列。
• 每一条指令表示一个或多个操作。
算法与程序的关系
• 算法着重体现思路和方法,程序着重体现计算机的实现;
• 程序中的指令必须是机器可执行的,算法中的指令无此限制;
• 一个算法若用计算机语言来书写,它就可以是一个程序。
算法的表示方式
• 用自然语言描述算法
• 用流程图描述算法
• 用数学语言或约定的符号语言描述算法
• 用C++的函数形式来描述算法
算法的特征
• 算法应满足具体问题的需求—正确性:程序中不含任何语法错误;程序对于几组输入数据能够得出满足要求的结果;程序对于精心选择的、典型的、苛刻的并带有刁难性的几组输入数据能够得出满足要求的结果;程序对于一切输入数据都能得出满足要求的结果。
• 一个算法必须由一系列具体操作组成,具体指的所有操作都必须经过已实现的基本操作有限次来实现,并且所有操作都是可读的、可执行的,每一操作必须在有限时间内完成。
• 算法中的所有操作都必须有确切的含义,不能产生歧义,算法的执行者或阅读者都能明确其含义及如何执行。
• 对于任意一组合法输入值,在执行有限步骤之后一定能结束,即:算法中的每个步骤都能在有限时间内完成
•算法应具备良好的可读性,一般算法的逻辑必须清楚、结构简单,所有标识符必须具有实际含义,能见名知义。
•当输入数据非法时,算法能作适当的处理并作出反应,而不应死机或输出异常结果。需健壮
算法评价标准
•一个特定算法的“运行工作量”的大小,只依赖于问题的规模(通常用整数量n表示),或者说,它是问题规模的函
数。
• 时间复杂度 T(n)
基本操作执行次数通常是问题规模n的某个函数,记作f(n)。 •假设随着问题规模 n 的增长,算法执行时间的增长率和 f(n)
的增长率相同,可记作:
– T (n) = O(f(n))
– T (n) 为算法的(渐近)时间复杂度。
• 空间复杂度 S(n)
用空间复杂度作为算法所需存储空间的量度,记做: S(n)=O(f (n)) 。具体的为程序执行过程中由于需要所申请的内存空间。
数据结构的定义(Data Structure)相关推荐
- 推荐一个算法/数据结构 可视化(Data structure Visualization) 网站
http://www.cs.usfca.edu/~galles/visualization/Algorithms.html 如果你对算法感兴趣而且和我一样还是个小菜鸟,千万不要错过. 好东西是要分享的 ...
- 【Lecture 3.1】a nested data structure
[(3, 1), (4, 2), (5, 3)] 什么是嵌套数据结构 - a nested data structure a nested data structure: dictionaries w ...
- [数据结构与算法 DSA 林轩田] 1. Introduction to Data Structure and Algorithm
目录 算法 1.什么是算法 2.Five Criteria of Algorithm(算法的五大原则) 3. Correctness Proof of Algorithm(算法正确性) 4. Effi ...
- 用于数据库的新兴数据结构Succinct Data Structure
这篇文章简单介绍了Succinct Data Structure 摘要: Succinct是一种数据编码方式, 能够以保证信息不丢失情况下, 使用最少的存储空间. https://mp.weixin. ...
- TRIE - Data Structure
Introduction 介绍 Trie,又称单词查找树,是一种树形结构,用于保存大量的字符串.它的优点是:利用字符串的公共前缀来节约存储空间. Trie is an ordered tree dat ...
- leetcode 211. Add and Search Word - Data structure design Trie树
题目链接 写一个数据结构, 支持两种操作. 加入一个字符串, 查找一个字符串是否存在.查找的时候, '.'可以代表任意一个字符. 显然是Trie树, 添加就是正常的添加, 查找的时候只要dfs查找就可 ...
- Data Structure
Data Structure 1. Abstract Data Type (ADT) 1.1. Data type A set of objects + a set of operations Exa ...
- Succinct Data Structure
作者:唐刘 最近看了一篇论文 SuRF: Practical Range Query Filtering with Fast Succinct Tries,里面提到使用一种新的数据结构 Succinc ...
- CF data structure 自制题单(一)
CF data structure 2000~2100 为你的战斗,献上雷鸣般的喝彩!--唔姆 目标 30 道题 1. Problem - 1555E - Codeforces 看了提示 给一些线段, ...
- 数据结构的定义和简介
1. 概述 数据结构定义: 我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(如元素的CURD.排序等)而执行的相应操作,这个相应 ...
最新文章
- java正则表示判断。是否以某个关键字结尾的
- 使用Nginx、Nginx Plus抵御DDOS攻击的方法
- 信息革命的新世界正在到来,连睡觉都觉得浪费
- 【学习笔记】22、读写文件(I/O操作)— 读文件
- Java sqlite事务方法,Java SQLiteDatabase.insert方法代码示例
- ap计算机科学4分还要再考吗,CB官方发布2020年AP计算机科学考试(CSA)的细节:考试时间/考试题型/备考资料/评分标准/考前建议...
- 通过项目逐步深入了解Mybatis(四)
- h5 nan_手把手教你将H5游戏打包成快游戏
- GConf error:Failed to contact configuration server
- 矩阵的最大路径和问题
- Java中的Class类
- 织梦手机版list.php,织梦一级目录作域名list.php无法跳转到手机站解决方法
- pandas怎么去除nan_pandas缺失值处理之——如何消去Nan值对数字型字符串数据类型的影响,让数字型字符串保持原始str类型,而不会自动变为float类型?...
- c语言二级考试报名费,c语言二级考试(计算机二级c语言报名)
- php爬虫post,PHPspider爬虫10分钟快速教程
- 用python 创建英语自定义词典
- A-priori算法
- 文墨绘学:培训机构如何做好招生培训
- 【数学建模】基于matlab GUI平行停车模拟仿真【含Matlab源码 1877期】
- 小马哥---山寨仿苹果6s 低配主板T618 9900 915D4Q-F 拆机主板多图
热门文章
- 认识交换机、交换机组网、基本配置--网络运维基础
- laspy读取laz点云文件--TypeError: a bytes-like object is required, not ‘FakeMmap‘
- html捉虫游戏,《小青蛙捉虫》托班体育游戏教案
- Show and Tell模型
- Learning Human Pose Estimation Features with Convolutional Networks
- 二、T100应收管理之订金立帐
- 考一建水利水电的看看通过稳,来谈谈对一建的一些见解
- 解决电脑连接蓝牙耳机,声音一直卡顿、断断续续的问题
- volatile变量与原子变量的差异
- 如何判断一个点是否在一个3D区域内部