算法与数据结构-诸论-学习笔记
来源:互联网 发布:实时天气预报软件下载 编辑:程序博客网 时间:2024/06/10 08:58
数据结构:
线性关系(linear):一对一
树形结构(tree):一对多
网状结构(graph):多对多、非线性
基本概念和术语:
数据(data):所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素(dataelement):数据的基本单位,在程序中通常作为一个
整体来进行考虑和处理。
由若干个数据项(dataitem):数据的最小单位,对客观事物某一方面特性的数据描述。
数据对象(dataobject):性质相同的数据元素的集合,是数据的一个子集。
数据结构(datastructure):相互之间具有(存在)一定联系(关系)的数据元素的集合。
元素之间的相互联系(关系)-->逻辑结构:
集合:只是同属于一个集合;
线性结构:一对一;
树形结构:一对多;
图状结构/网状结构:多对多。
数据结构的形式定义:
二元组:Data-Structure=(D,S)
D是数据元素的有限集,S是D上关系的有限集。
数据结构的存储方式:
数据结构在主存中的存储:
数据元素的存储
元素之间的关系的表示:
顺序表示-->顺序存储结构:用数据元素在存储器中的相对位置-->元素之间的逻辑结构/关系。
非顺序表示-->链式存储结构:每一个数据元素中增加一个存放另一个数据元素的指针(pointer)-->元素之间的逻辑结构/关系。
一个算法的设计-->所选定的逻辑结构,
而算法的实现-->所采用的存储结构
在C语言中,用一维数组表示顺序存储结构;
用结构体类型表示链式存储结构。
数据类型:一个值的集合
定义在该值集上的一组操作的总称。
C语言中:基本类型
构造类型
数据结构的运算:
1.建立(create)
2.消除(destory)
3.删除一个元素(delete)
4.插入一个元素(insert)
5.访问数据结构(access)
6.对数据结构(中的元素)进行修改(modify)
7.排序(sort)
8.查找(search)
抽象数据类型(ADT):一个数学模型&在该模型上的一组操作(逻辑非物理)
形式化定义:三元组:ADT=(D,S,P)
D:数据对象;S:D上的关系集;P:对D的基本操作集
ADT的一般定义形式:
ADT<抽象数据类型名>{
数据对象:<数据对象的定义>(D)
数据关系:<数据关系的定义>(S)
基本操作:<基本操作的定义>(P)
}ADT<抽象数据类型名>
基本操作的定义:
<基本操作名>(<参数表>)
初始条件:<初始条件描述>
操作结果:<操作结果描述>
初始条件:描述操作执行之前数据结构和参数应满足的条件;若不满足,则操作失败,返回相应的出错信息。
操作结构:描述操作正常完成之后,数据结构的变化状况和应返回的结果。
算法:对特定问题求解方法(步骤)的一种描述,是指令的有限序列。
特性:有穷性、确定性、可行性、输入、输出。
程序不必有穷(例如OS)。
设计要求:正确性、可读性、健壮性(适当处理非法或错误数据)、通用性、效率(算法执行时间)与存储量需求(执行所需的最大存储空间)。
复杂性分析:时间复杂性、空间复杂性。
符号:O(n)。
- 算法与数据结构-诸论-学习笔记
- 数据结构与算法学习笔记
- 数据结构与算法学习笔记
- 数据结构与算法学习笔记
- 算法 与 数据结构 学习笔记
- 算法与数据结构学习笔记
- 数据结构与算法学习笔记之--数据结构
- 数据结构与算法分析_学习笔记
- 数据结构与算法分析学习笔记
- 数据结构与算法分析 学习笔记
- 数据结构与算法分析学习笔记---第一章
- 数据结构与算法视频学习笔记
- 数据结构与算法学习笔记--哈希表
- 《数据结构与算法分析》学习笔记
- 【数据结构与算法学习笔记】PART5 图
- 数据结构与算法分析学习笔记
- 《数据结构与算法》学习笔记25 红黑树
- 《数据结构与算法》学习笔记26 堆
- 设计模式原则
- IE浏览器输入框反应慢的解决办法
- 如何使用grep搜索带空格的字符串
- lex in golang
- 在eclipse中查看Android源代码
- 算法与数据结构-诸论-学习笔记
- ORA-00020
- 图文并茂使用CocosBuilder制作Cocos2D游戏
- 放假前夕
- libnet/libnids库函数介绍
- QT VS2012下的配置方法
- STSdb,最强纯C#开源NoSQL和虚拟文件系统
- ubuntu源的问题
- #2002 - 服务器没有响应or the local MySQL server's socket