什么是数据结构
数据结构通常是研究数据的存储结构和逻辑结构及它们之间的相互联系
数据结构的三要素:
- 逻辑结构
- 存储结构
- 运算
- 线性结构中元素出现一对一关系
- 树结构中元素之间出现一对多关系
- 图结构中元素之间出现多对多关系
评测算法优劣性
算法是解决特定问题的方法。
算法和程序的区别:
(1)执行时间:算法的步骤是有限的,程序可以无限执行下去。
(2)语言描述:程序必须用规定的设计语言书写,算法无限制。
算法的五个重要特性:
- 有穷性
- 确定性
- 可行性
- 输入
- 输出
评价算法的优劣,主要考虑时间复杂度和空间复杂度
时间复杂性
是指算法的计算量大小。
计算的基本原则如下:
(1)找到最复杂、运行时间最长的程序段
(2)保留最高次项,忽略低次项和系数
常见的时间复杂度及其关系如下:
常数项 < 对数 < 线性 < 线性对数 < 平方 < k次方 < 指数 < 阶乘
O(1) < O(logN) < O(n) < O(nlogN) < O(n2) < O(n3) < O(nk) < O(2n) < O(3n) < O(n!)
空间复杂度
是指解决问题的算法再运行时所占用的存储空间
扩展
关于复杂性,具体的计算简单例子可以看这篇文章:时间复杂度和空间复杂度(超详细)
这篇的关于复杂性的例子挺多:手把手带你了解时间复杂度和空间复杂度 【超详细】
判断题
- 数据的逻辑结构与数据元素本身的内容和形式无关
- 算法可以没有输出