“这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战”
数据结构
简单了解数据结构
- 学习数据结构能干什么? 提高CPU执行效率 合理使用内存 合理管理数据
- 学完第一体验就是 代码量增加,能够构成 初步解决问题 的思路
- 应用场景: 应用程序:抢红包、斗地主、银行叫号、播放器 工业场景:温度控制、速度控制、位置控制 汽车电子:速度控制、功率输出
- 程序:老教授说过 程序就是 数据结构加算法
- 数据结构的概念诞生于 1968年 C -》 1972 C++--》1980 python--》1991
- 数据结构与开发语言没有直接关系 不只是 C 可以实现数据结构
- 数据结构是 数据的逻辑 和 存储 及操作的知识 与 技术
- 数据:能够输入到计算机中 描述客观事物的信息总和声音、图像、温度、湿度、光照、压力、流量等
- 结构:只数据间的关系
- 数据结构是指 互相之间存在一种或多种的特定关系的数据元素集合 将数据解结构存储到计算机中并进行操作(算法)
- 算法:是值特定问题求解的过程描述(解决问题的方法)
- 数据元素:数据的基本单位 节点
- 数据项: 表示独立包含数据最小单位 也称 域 若干数据项组成数据元素 数据项是不可分割的最小单位
- 数据对象:是值相同数据项的集合
数据结构三要素:【记住】
1.逻辑结构 2.存储结构 3.操作(算法) 增、删、改、查
逻辑结构:【记住】
数据元素之间的关系 和存储无关 独立于计算机
- 线性结构:顺序表、链表、队列、栈 (链子、手表、烧烤) 一对一
- 非线性结构:树 一对多 族谱、公司认识架构
- 图:多对多 渔网、地图
存储结构:【记住】
顺序存储: 内存中是连续的数组
链式存储:逻辑上是连续的 但存储上不一定是连续的
哈希存储:【了解】节点关键码值决定存储地址
索引存储:【了解】除了建立存储节点外 还要建立索引表 来识别地址 书的目录
存储方式都是为了提高查找效率
算法
算法不依赖于编程语言
1.有穷性: 算法是由若干条指令组成的 有穷性的序列 总是在执行若干次后结束
2.确定性: 每一条指令都有特定的含义 且 没有歧义
3.可行性: 算法在当前环境下可以通过有限次运算实现
4.输入输出: 由 1个 或 多个输入 有一个或对个输出
好的算法特点:
1.正确性 运行正常、结果正确
2.易读性 简单、易读、主要体现在 命名规则、适当的注释
3.健壮性 对非法的数据或操作有良好的反应能了 和 处理能力
4.高效性 算法执行效率高 运行时间短 5.低存储 算法所占空间尽可能低 (不作为重点考虑)