赞
踩
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
算法至少应该具有输入、输出和加工处理无歧义性、能正确反映问题的需求、能够得到问题的正确答案。大体分为以下四个层次:
算法设计的另一个目的是为了方便阅读、理解和交流
当输入输入不合法时,算法也能够作出相关处理,而不是产生异常或莫名其妙的结果。
算法设计应该尽量满足时间效率和存储量低的需求。
通过设计好的测试程序和数据,利用计算机计时器对不同算法编制的程序的运行时间进行比较,从而确定算法效率的高低。
这种方法明显有很大的缺陷:
在计算机程序编制前,依据统计方法对算法进行评估。一个高级程序语言编写的程序在计算机上运行时消耗的时间取决于以下因素:
第1条是算法好坏的根本,第2条要由软件来支持,第4条要看中硬件的性能。一个程序的运行时间,依赖于算法的还坏和问题的输入规模。所谓问题输入规模是指输入量的多少。
最终,在分析程序运行时间时,最重要的是把程序看成独立于程序设计语言的算法或一系列步骤。
在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随 n 的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间度量,记作:T(n) = O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度,简称为时间复杂度。其中f(n)是问题规模n的某个函数。这样用大写O()来体现算法时间复杂度的记法,我们称为大O记法。
推导大O阶;
常用的时间复杂度所耗费时间从小到大依次是:
O(1) < O(log n) < O(n) < O(nlogn) < O(n²)< O(n³) < O(n!) < O(nⁿ)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。