数据结构复习——绪论
临近期末,线上考试的科目还没有定下来
但想着数据结构本身对计算机专业的人就很重要,那就趁此机会重新过一遍!
今天略有空当,就先总结绪论一篇
有兴趣的同学可以跟我一起学习呀QWQ
本文章以 严书——《 数据结构(C语言版)》为准
文章目录
- 基本概念
- 算法与算法分析
基本概念
数据:是对客观事物的符号表示,在CS中是指所有能输入到计算机中能被运算的符号总称。PS:其实就是能存到电脑里能算的东西
数据元素:数据的基本单位由若干个数据项组成。
数据对象:性质相同的数据元素的集合,是数据的子集。
数据结构:相互间存在一直or多种特定关系的数据元素的集合
数据元素之间的关系称作结构(这里的结构是逻辑结构)数据结构也可用一个二元组表示
Data_Structure = (D , S)
comments:D是数据元素的有限集合,S是D上关系的有限集合
物理结构
数据结构在计算机中的表示(映像)称为数据的物理结构(存储结构)。包括了数据元素的表示和关系的表示
由于计算机中用二进制串来表示一个数据元素,通常称该位串为元素 / 结点
当该位串由若干数据项组成时
(比如虚拟内存的寻址地址由标志位,组索引,块偏移组成)
那么对应于各个数据项的子位串称为数据域
物理结构的组成
数据类型
数据类型是指:一个值的集合和定义在这个值集上的一组操作的总称。
example:C语言中的int型和定义好的 + - * / 操作
可分为 原子类型(int,long…)和 结构类型(int mylist[N])
ADT 抽象数据类型 (abstract data type)
仅取决于其一组逻辑特征,与计算机内部的实现没有关系。
(抽象的意义在于对其数学特性的抽象)
上图为ADT的分类,和ADT的组成部分
ADT也可使用三元组表示
即ADT = (D, S ,P)
comments: D 是数据对象,S是D上的关系集,P为对D的基本操作集
格式
ADT 抽象数据类型名{数据对象: <数据对象的定义>数据关系: <数据关系的关系>基本操作: <基本操作的定义>
}ADT 抽象数据类型名
多型数据类型
是指其值成分不确定的数据类型,(比如数据对象可能为int,char…类型)
但具有相同的数学抽象特性,故称之为多行数据类型
算法与算法分析
算法是为解决某类问题而规定的一个有限长的操作序列(是指令的有限序列)
算法的性质
有穷性:必须执行有穷步后结束,且每步都可在又穷时间内完成。
确定性:每条指令都不会有二义性,且在任何条件下,算法只有惟一的执行路径 (相同输入只有一个结果)。
可行性:算法的操作都是可以通过已经实现的操作执行优先次实现的。
输入:有0或多个输入。
输出:有 1个或多个输出。
好的算法的目标
- 正确性
- 可读性
- 健壮性(鲁棒性)
- 效率与低存储需求
算法的效率分析方法
- 事后统计的方法
- 事前分析估计的方法
(渐进) 时间复杂度
通常是从算法中选取一种对于所研究问题来说是基本操作的原操作以该操作重复执行的次数作为算法的时间量度。
T(n)=O( f(n) )
f(n)是问题规模 n的函数,随着 n↑,算法的执行时间增长率与f(n)增长率相同。
O(1) < O(log2n) < O(n) < O(nlog2n) < O(n2) < O(n3) < O(2n)
空间复杂度
S(n) = O( f(n) )
若输入数据所占空间只取决于问题本身,则只需要分析出输入和程序之外的额外空间。
否则应该考虑输入所需空间。
若额外空间对于输入数据量来说是常数,则称此算法为原地工作。
数据结构复习——绪论相关推荐
- 【数据结构】绪论部分
今天由我来跟大家讲一下数据结构的绪论部分吧.数据结构整体复习主要靠理解.理解了学习起来其实是很轻松的事情,学进去了你也会发现很好玩.这篇只是个结构概括,理解就行. 1.1 基本概念 1.数据:即信息. ...
- 严版数据结构总结--绪论
严版数据结构总结--绪论 一.绪论 1.1什么是数据结构 1.2基本概念和术语 1.3抽象数据类型的表示与实现 1.4算法与算法分析 抱着试一试的心态在CSDN上写博客,记录下我对严版数据结构的粗浅认 ...
- 南京邮电大学计算机网络专硕,南京邮电大学计算机专硕数据结构复习经验分享...
南京邮电大学计算机专硕数据结构复习经验分享 今年数学考砸了,考完了一直没想碰考研的任何东西.今天不知道怎么的突然觉得还是有必要给后人留下点 作者 magicls 次阅读 2014-01-28 今年数学 ...
- 算法模版:模拟数据结构之绪论【沈七】
算法模版:模拟数据结构之绪论 前言 什么是数据结构? 先看数据 再看结构 一些术语 逻辑结构 储存结构 完结散花 参考文献 前言 唤我沈七就好. 算下来应该是有两周没更新了. 是因为最近一直在研究数据 ...
- KPM算法——数据结构|复习局|串|复杂模式匹配算法|二维数组解决KPM
数据结构复习局--KPM算法 何为KPM? 事先规则 状态 匹配 dp--状态转移图 状态X 获得dp数组值 看看图再理解下 写在前面: 本文仅为作者个人学习记录,详细具体内容参考自知乎大佬labul ...
- 【数据结构复习】二叉树的遍历——从微软2014校园招聘说起
[数据结构复习]是学习.复习常用数据结构系列文章.数据结构与算法密不可分,是程序实现功能的重要组成部分.优秀的数据结构可以提高算法的时间及空间效率.反之,将增加算法复杂度,甚至妨碍程序的正确执行. 一 ...
- CSU人工智能与模式识别复习-绪论
CSU人工智能与模式识别复习-绪论 一.概念解析ConceptsAnalysis: 样本Sample:一个具体的研究(客观)对象: 模式Pattern:对客体(研究对象)特征的描述(定量的或结构的描述 ...
- 数据结构复习-基础、线性表、栈、队列、串
数据结构复习笔记 作者: 收集于网络 第一章:概论 数据:指所有能被输入到计算机中,且能够被计算机识别.存储和加工处理的信息的载体,是计算机操作的对象的总称. 数据元素:数据的基本单位,有时一个数据元 ...
- CAUC算法与数据结构复习基本代码(一)
算法与数据结构复习基本代码(一) 线性表 线性表 顺序表 单链表 双链表 栈 栈 顺序栈 链式栈 表达式求值 队列 顺序队列 链式队列 字符串 线性表 线性表 线性表的抽象数据类型定义 templat ...
最新文章
- Current Biology | 以退为进——白逢彦组揭示酿酒酵母通过基因网络的逆向进化适应环境的新机制...
- mapreduce 文件可以切分吗_MapReduce的任务流程
- 多核导航模块(Multicore Navigator)
- jQuery选择器中的特殊符号和关键字
- mysql中 REPLACE INTO 和 INSERT INTO 的区别
- activeMQ 问题
- python快速写入hbase_Python 读写 hbase 数据的正确姿势(一)
- 在.net中序列化读写xml方法的总结
- 统计方法在自然语言处理中的应用(统计自然语言处理宗成庆第二版完结)
- python调用通达信函数用户指标_通达信自定义指标调用
- mac下加速下载百度云资源
- c语言输入1显示你好,你好,求指教!该怎么用C语言的scanf实现一次输入若干个数据...
- Java中文繁简体转换工具
- 现货白银如何计算盈亏
- Stacked Hourglass笔记源码(一)网络结构
- You are a Badass: how to stop doubting your greatness and start living an awesome life, Jen Sincero
- 职场人如何制定学习计划?
- 基于注解和EasyExcel指定单元格下拉选内容
- cookie的max age
- 月薪9K程序员,写完这段代码就被辞退了