数据结构
是相互之间存在的一种或者多种特定关系的数据元素的集合
我们把数据结构分为物理结构和逻辑结构
逻辑结构
- 集合结构。集合结构。都是平级的类似数学中的集合
- 线性结构 1对1
- 树形结构 1对多
- 图形结构 多对多
物理结构
物理结构指的逻辑结构在计算机中的存储形式
- 数据元素的存储形式有2种 1.顺序存储类比栈,数组等 2.链式存储 存储空间不连续的,类比堆
下面是总结
逻辑结构是面向问题的,而物理结构是面向计算机的,其基本的目的就是把数据和逻辑关系存储到计算机的内存当中
算法
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限的序列。并且每条指令标示一个或者多个操作
算法的五大特性
- 零个或者多个输入
- 至少一个输出
- 确定性 每一步都是确定的
- 有穷性 时间不能太长
- 可行性 每一步都可以通过执行有限次数完成
正确性
- 算法没有错误
- 符合条件的数据没有错误和异常
- 非法输入的数据没有错误
- 刁钻的数据没有错误
可读性
健壮性
时间效率高 存储量低
判断一个算法效率的时候,函数中的常数和其他次要项常常可以忽略,更应该关注主项(最高阶项)的阶数
时间复杂度的计法 大O计法
- 常数阶 不管常数是多少,我们都标记为O(1)
- 线性阶 O(N)
- 对数阶
int count=1; while(count<n){ count *= 2;}
此时2的n次方为count .n = log2count O(logN) - 平方阶
没有特殊说明的话,时间复杂度都是指的最坏的情况