算法的基本概念

算法定义:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。

算法的特性
输入输出:算法具有零个或多个输出 并且至少有一个或多个输出
有穷性:指算法在执行有限步骤之后,不会出现死循环,并且每个步骤在可接受的时间内完成。
确定性:算法的每一个步骤具有确定的含义,不会出现二义性。
可行性:算法的每一步都必须是可行的,意思是每一步通过执行有限次数完成。
算法设计的要求:
正确性:满足算法的特性。
可读性:算法设计的另一目的是为了方便阅读,理解和交流。
健壮性:当输入不合法数据时,算法也能作出相应的处理,而不会报错或者莫名其妙的结果。
时间效率高:执行时间短。
储存量低:算法程序运行时所占用的内存或外部硬盘储存空间少。
算法效率的度量方法
事后统计方法:通过设计好的测试程序和数据,利用计算机对不同算法的时间效率进行对比
(缺点:必须事先编制好测试程序,算法不好,容易浪费人力物力;时间容易受到硬件的影响;算法的测试数据难以设计。)
事前分析估算法:在计算机程序编制前,依据统计方法对算法进行估算。
(消耗时间的因素:算法采用的策略、方法;编译产生的代码质量;问题的输入规模;机器的执行速度)


函数的渐进增长(阶数越高,时间复杂度越高):1<log n < n < nlog n < n^2 < n^3 < 2^n < n! < 
n^n


最坏情况与平均情况:最坏情况运行时间是一种保证,那就是运行时间不会更坏了。(我们提到的运行时间都为此)
平均运行时间是所有情况中最有意义的,应为它是期望的运行时间。(但这个时间很难得到,只能通过大量的测试估算)


算法的空间复杂度:S(n) = O(f(n)),n为问题规模,f(n)为语句关于n所占储存空间函数。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章