数据结构与算法分析之01绪论
来源:互联网 发布:用友nc外部数据平台 编辑:程序博客网 时间:2024/05/27 09:48
01绪论
专业术语:
数据:数据是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被计算机程序处理的符号的集合。
数据元素:数据的基本单位,在计算机程序中通 常作为一个整体进行考虑和处理。
数据项:有独立含义的数据最小单位,也称域。
数据类型:是一个值的集合和定义在此集合上一组操作的总称。
抽象数据类型:ADT,指一个数学模型以及定义在该模型上的一组操作。通常用数据对象、数据关系、基本操作集这样的三元组来表示。有数据抽象和数据封装两个重要特性。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。包括(逻辑结构、存储结构和数据的运算)。
数据的逻辑结构:指数据元素之间的逻辑关系。包括集合、线性结构、树形结构、图状结构或网状结构。
数据的存储结构:指数据结构在计算机中的表示,也成物理结构。主要有顺序存储、连接存储、索引存储、散列存储。
算法:对特定问题求解步骤的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作。有5个重要特性(有穷性、确定性、可行性、输入、输出)
算法设计的要求:正确性、可读性、健壮性、效率与低存储量需求。
时间复杂度:一般情况下,算法中基本操作的重复次数是问题规模n的某个函数f(n),算法的时间度量记作T(n)=O(f(n)),表示随着问题规模n的增大,算法执行时间增长率和f(n)的增长率相同,称为时间复杂度。
空间复杂度:S(n)定义为该算法所耗费的存储空间,是问题规模n的函数。
数据结构的两个层次
一、逻辑结构
集合——数据元素间除“同属于一个集合”外,无其它关系
线性结构——一个对一个,如线性表、栈、队列
树形结构——一个对多个,如树
图形结构——多个对多个,如图
二、存储结构
顺序存储结构——借助元素在存储器中的相对位置来表示 数据元素间的逻辑关系
链式存储结构——借助指示元素存储地址的指针表示数据 元素间的逻辑关系
数据类型
定义:在一种程序设计语言中,变量所具有的数据种类
C语言:
基本数据类型: char int float double void
抽象数据类型
更高层次的数据抽象
由用户定义,用以表示应用问题的数据模型
由基本的数据类型组成, 并包括一组相关的操作
抽象数据类型
抽象数据类型可以用以下的三元组来表示:
ADT = (D,S,P)
数据对象 D上的关系集 D上的操作集
算法:
算法的特性:
输入:有0个或多个输入
输出:有一个或多个输出(处理结果)
确定性:每步定义都是确切、无歧义的
有穷性:算法应在执行有穷步后结束
可行性:算法中的所有操作都可以通过已经实现的基本操作运算执行
算法分析:时间复杂度算法中基本语句重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记作:T(n)=O(f(n))
表示随着n的增大,算法执行的时间的增长率和f(n)的增长率相同,称渐近时间复杂度。
分析算法时间复杂度的基本方法:
找出语句频度最大的那条语句作为基本语句
计算基本语句的频度得到问题规模n的某个函数f(n)
取其数量级用符号“O”表示
时间复杂度是由嵌套最深层语句的频度决定的
0 0
- 数据结构与算法分析之01绪论
- 数据结构与算法笔记之--算法绪论
- 数据结构与算法 绪论
- 数据结构与算法绪论
- 数据结构与算法绪论
- 数据结构与算法--绪论
- 算法与数据结构绪论
- 数据结构与算法绪论
- 数据结构与算法----绪论
- 数据结构与算法 - 绪论上
- 数据结构与算法(绪论)
- 1.数据结构与算法绪论
- 《大话数据结构》-数据结构绪论与算法
- 数据结构与算法学习(绪论)
- 数据结构与算法(C语言)<绪论>
- 数据结构与算法笔记 —— 绪论
- 《数据结构与算法》第1章 绪论
- 绪论 – 数据结构和算法01
- 我也遇到这种情况
- Hadoop学习笔记 --- hadoop1.0 与 hadoop 2.0架构图
- Udacity笔记
- flask之用户角色和用户资料编辑
- 网络爬虫之scrapy学习之安装和工程创建
- 数据结构与算法分析之01绪论
- android自定义View之五子棋小游戏
- 如何快速转载CSDN中的博客
- [BZOJ3295][Cqoi2011]动态逆序对
- python os模块常用命令
- IOS中使用UITableViewCell的按钮事件
- 【BZOJ 3157, 3516, 4126】 国王奇遇记 - 极致的组合数学
- jq框架封装学习笔记1-框架介绍与选择器框架
- rmmod: chdir(/lib/modules): No such file or directory