算法

算法的五大特性

1.输入:算法具有0个或多个输入
2.输出:算法至少有1个或多个输出
3.有穷性:算法在有限的步骤之后会自动结束而不会无限循环,并且每一个步骤可以在接受时间内完成
4.确定性:算法中的每一步都有确定的含义,不会出现二义性
5.可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限的次数完成

时间复杂度
T(n)=10*n^3
但是在实际中具体分析实际价值有限 只需要大概量级
所以用O(n^3)表示

相同的算法应对不同的问题时可能会出现多种情况

算法完成?作最少需要多少基本操作,即最优时间复杂度
算法完成?作最多需要多少基本操作,即最坏时间复杂度(一般都是算这个)
算法完成?作平均需要多少基本操作,即平均时间复杂度

时间复杂度的?条基本计算规则
1. 基本操作,即只有常数项,认为其时间复杂度为O(1)
2. 顺序结构,时间复杂度按加法进?计算
3. 循环结构,时间复杂度按乘法进?计算
4. 分?结构,时间复杂度取最?值
5. 判断?个算法的效率时,往往只需要关注操作数量的最?次项,其它次
要项和常数项可以忽略
6. 在没有特殊说明时,我们所分析的算法的时间复杂度都是指最坏时间复
杂度

空间复杂度
类似于时间复杂度的讨论,?个算法的空间复杂度S(n)定义为该算法所耗费
的存储空间,它也是问题规模n的函数。
渐近空间复杂度也常常简称为空间复杂度。
空间复杂度(SpaceComplexity)是对?个算法在运?过程中临时占?存储空间
??的量度。
算法的时间复杂度和空间复杂度合称为算法的复杂度

常?时间复杂度
执?次数函数举例 阶 ?正式术语
12 O(1) 常数阶
2n+3 O(n) 线性阶
3n +2n+1 O(n2) 平?阶
5log n+20 O(logn) 对数阶
2n+3nlog n+19 O(nlogn) nlogn阶
6n3+2n2+3n+4 O(n3) ??阶
22 O(22) 指数阶

O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2**n) < O(n!) <
O(n**n)
算法:
1.穷举法(枚举法)

原文地址:https://www.cnblogs.com/xujin247/p/11740542.html