代码改变世界

算法及其复杂度

2019-07-15 21:48  菜鸟thy  阅读(322)  评论(0)    收藏  举报

算法具有以下特性

 

1. 有穷性。  不能陷入死循环。

 

2.确定性。   不会产生错误理解

 

3.可行性      基础的操作都是可以执行的

 

4.输入      需要有输入或者像开关一样

 

5.输出      输出的数值与输入存在某种特定关系

 

如果你要更进一步:   做一个好的算法

1.正确性:正确的解决求解问题

 

2.可读性:  算法应当具有良好的可读性。 以帮助人们理解

 

3.健壮性:  不会因为输入非法数据卡死。记得if  return;

 

4.效率与储存量:  大数据 控制空间

 

 

时间复杂度:  循环套循环 则相乘, 单个for接for则相加

常见的时间复杂度

O(1) <  O(log2  n)<  O(nlog2  n) O(n2) O(n3) O(2^n) O(n!)<   O(n^n)

空间复杂度: