数据结构
逻辑结构:数据元素之间的关系
物理结构:逻辑结构在计算机中的存储形式
四大逻辑结构:
1.集合结构:同属一个集合,相互之间无关系
2.线性:一对一
3.树形:一对多
4.图形:多对多
物理机构:
顺序存储:地址连续
链式存储:可连续可不连续
算法
1.特性
输入:0或多个
输出:至少1个或多个
有穷性:不会无限循环,有限时间内结束
确定性:无歧义,一条路径得到结果相同
可行性:有限次数完成
2.设计要求
正确性:
算法程序没有语法错误;
对于合法输入能够产生满足要求的输出;
对于非法输入能够产生满足规格的说明;
对于故意刁难得测试输入都有满足要求的输出结果;
可读性:
便于阅读和修改
健壮性:
当输入数据不合法时,算法也能做出相关处理,而不是产生异常、崩溃或明明奇妙结果
时间效率高和存储量低
函数渐进增长
函数F(n)在n>N时,始终大于函数G(n),就说G(n)渐进增长F(n)
X为输入规模,Y 为算法执行次数(复杂度) aX^b+cX+d 执行次数计算方法
Y= aX^b+cX+d a,c,d对Y值的影响均可忽略,此时只看b值,b越大Y 增长越快
Y= cX+d c,d忽略,Y随X增长
Y = d d无论为多大常熟,均视作1
时间复杂度
T(n)=O(f(n)); f(n)是n的某个函数
执行次数 = 时间
O() 大O记法
T(n)增长最慢的算法为最优算法
推导大O阶
用常熟1取代运行时间中的所有加法常数
在修改后的运行次数函数中,只保留最高阶项
如果最高阶项存在且不是1,则去除与这个项相乘的常数
时间复杂度耗时从小到大O(以下项)