Java教程

算法和算法分析

本文主要是介绍算法和算法分析,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
  1. 算法的定义:一个通过有限的步骤解决问题的序列

算法的特点:1.输入---------.>0个或0个以上输入

                      2.输出--------->至少一个输出

                      3.有穷性------->算法应该执行有穷步后结束,程序则不一样,例如:开车时候,其                             传感器需要不断的工作,汽车ECU(汽车电脑)不断分析。

                      4.确定性------->执行的每一步都应该是确定的  (你说什么他才会干什么,不说清楚就                            不干)

                      5.有效性------->每一步都应该是有用的(正常人不会去吃屎吧,因为你tm有食物

                         你还去吃,不会吧)

 

2.算法的评价:

  • 1 正确性
  • 2  可读性
  • 3 健壮性(有一定的容错性不然就直接程序奔溃了,     

                          要有正确引导用户的提醒)

  • 4高效性    (时间和空间的牺牲)                                            

 

算法的效率度量

1 时间复杂度(重心)

2 空间复杂度(硬盘技术在不断提高价格降低,已经不在乎了)

 

时间复杂度的表示法

回想高等数学中的极限发F(x)=5x+3 当x趋于无穷大时忽略系数5和常数3

 

 

例:

取最高语句的使用频度本例中即第三行,内循环的循环体

矩阵就是下图中的这样,外循环控制行内循环控制列

每一行中都要循环四次列,由上到下,实际内存是连续的这只是思考

的逻辑模型

       

 

 

 

空间复杂度

1,输入输出所占用的空间

2,程序本身所占用的空间

3,运行过程中的临时辅助空间

原地工作:辅助空间为常量时

备注(时间,空间复杂度都是按最坏的情况来计算的,

即可能的最长时间,最长空间,就像早上上课只能早到,

而不能迟到要提前预留时间)

 

 

 

 

时间复杂度从左到右增大

 

 

结束

 

 

 

 

 

 

 

 

这篇关于算法和算法分析的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!