数据结构第一章
基本概念
1.1广播方式发送文件
发送机发送一次,所有都可接收。
优:编程容易、发送速度快
却:容易丢包
1.2单播方式发送
一次一个
1.3改进方式
多级单播传输、类传销方式
数据结构研究内容
2.1数据概念
所有计算机输入、存储、处理和输出的信息都是数据。
如 字符、数字、图像、声音、视频。
数据结构研究对象
a) 数据的逻辑结构
b) 数据的存储结构
c) 数据的运算
2.2数据的逻辑结构
指数据元素之间的逻辑关系
数据元素的逻辑关系分类:
线性结构和非线性结构(单链表)线性结构一一对应,非线性每个元素有0个或多个其他数据关系(朋友关系网)
2.3数据的存储结构
- 顺序存储(数组)
- 链式(链表)
- 散列存储:数据元素的存储位置由值确定。数据元素之间的关系通过指针表达。
- 索引存储:建立索引表和子表数据元素存储于子表,索引表存储子表首地址
散列和索引将结合查找算法讨论。
2.4数据运算 - 查找(如果i==某值,返回该地址)
- 插入(尾部插入,或像链表插入)
- 删除
- 修改
- 遍历:不重复的访问所有数据元素
- 排序
运算效率:
顺序存储查找效率高,插入、删除效率低
链式存储查找低,插入删除、效率高
2.5数据结构表示方法:二元组、图形
二元组(D,R)D是元素集合,R是D上关系集合
例子:用d1,d2,d3,d4表示学号01,02,03,04,学生信息表二元组表示<D,R>其中D={d1,d2,d3,d4},R={< d1,d2>,< d2,d3>,< d3,d4>}。
图形
算法与算法分析
3.1算法的概念
计算机算法是指解题步骤的精确描述。
通过编写计算机程序在计算机中运行,所以算法应该有5个特征:
- 有穷性,不能出现有限循环;
- 确定性,每一步骤确切含义,不能使用歧义描述,确切执行路径;
- 可行性,
- 输入
- 输出
3.2算法描述方法
自然语言、流程图、N-S图、程序设计语言
3.3算法分析
同一问题可以设计出不同算法,算法有差别。有些可读性强,有些效率高。需要对算法分析和评价,选出较好算法,从以下方面对算法进行评价: - 正确性,给定一组输入,在有限的时间内得出预定结果。需要测试运行算法检验正确。
- 可读性,易于阅读理解,方便交流
- 健壮性,一个健壮的算法能对输入数据的合法性检查,非法输入能适当处理和告知。
- 效率,,,包括时间效率和空间效率,时间复杂度低和空间复杂度低平衡
3.4总结的算法设计方法(没心得以后再说) - 穷举法
- 分治法
- 回溯
- 贪心
- 动态规划