数据结构分为逻辑结构与存储结构
一,逻辑结构
又分为线性结构和非线性结构。
线性结构有线性表,栈和队列,字符串,数组。
非线性结构有树(具有多个分支的层次结构),图(分为向图和无向图),集合。
二,存储结构(物理结构)
分为顺序存储结构(数组)和链式存储结构(结构)
三,时间复杂度T(n)=O(n)
通常采用事前预估算法,与问题规模(n),时间开销,语句,频度有关
其中时间开销和问题规模,通过分析两者的关系,分析算法
计算时注意:
①只考虑阶数n高的部分
②可以忽略n前的系数
③O表示同阶,同一数量级,当n趋于无穷时,两者比为常数。
④加法规则:多项相加,只保留最高阶的项且系数为1
乘法规则:多项相乘,都保留。
⑤大小比较按“常对幂指阶”比较
⑥顺序执行的代码只会影响常数项可以忽略
只挑循环结构的基本操作与n的关系
嵌套函数只考虑最深层循环的循环次数与n的关系
⑦运算的实现依赖于存储结构
四,空间复杂度S(n)=O(f(n))
即算法所需存储空间的度量
给变量分配存储空间(程序代码大小固定)当n无论多大所需内存空间都是固定的常量。
五,算发原地工作
固定的常量,所需要的辅助空间相对于输入数据量而言为一个常数。