欢迎来到天天文库
浏览记录
ID:52815175
大小:372.00 KB
页数:49页
时间:2020-04-13
《算法效率分析基础概要.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第2章算法效率分析基础主要内容:2.1分析框架2.2渐进符号和基本效率类型2.3非递归算法的数学分析2.4递归算法的数学分析2021/9/151LingJie/GDUT2.1算法分析的基本框架一般而言,对于一个算法的分析主要是对算法效率的分析,包括了衡量其运行速度的时间效率以及衡量算法运行需要占用空间大小的空间效率。对于早期的计算机来说,时间与空间都是极其珍贵的资源。半个世纪以来,硬件技术的发展大大提高了计算机的存储容量,使得存储容量的局限性对于算法的影响大大降低了。但时间效率并没有得到相同程度的提高。因此,算法的时间效率是算法分析中的关键部分。2021/9/152Li
2、ngJie/GDUT2.1.1输入规模的度量一个显而易见的事实是:大部分算法的执行时间随着输入量的增加而增大。例如在对一个数组进行排序时,数组越大,排序需要的时间就越长。因此从逻辑上来说,算法的效率应该是输入量的函数。选择哪个参数表示输入规模是有差异的。如计算两个n阶矩阵的乘积,选择矩阵阶数和矩阵元素个数作为输入规模求的的算法效率是有差别的。选择输入规模的合适度量受算法的操作细节影响,如拼写检查算法可以使用字符或词的数量作为输入规模。如果算法是与数字特性相关的,其输入规模的度量应当引起注意。例如:检查给定的整数是否为质数,倾向于度量数字n的二进制表示中的比特数。2021
3、/9/153LingJie/GDUT2.1.2运行时间的度量单位算法时间包括了编译该算法的时间以及运行该算法的时间。因此衡量算法时间的单位很自然的会想到用“秒”、“毫秒”等实际的时间单位。这对于算法的测试者而言是很直观的,但是存在的问题是:编译算法的时间与编译程序的好坏有关,即使只考虑算法运行时间,得到的时间也受到了运行该算法的计算机速度的影响。因此一个算法在某一台计算机上实现得到的时间对于其他的计算机是没有参考意义的。2021/9/154LingJie/GDUT统计算法每一步操作的执行次数——不可行。统计算法中最重要的操作—基本操作的执行次数。排序的基本操作:比较矩阵
4、乘法的基本操作:乘法多项式求值的基本操作:乘法执行次数C(n)是输入规模n的函数,算法运行时间T(n)是执行次数的函数:2021/9/155LingJie/GDUTBasicoperation:theoperationthatcontributesmosttowardstherunningtimeofthealgorithm.T(n)≈copC(n)runningtimeexecutiontimeforbasicoperationNumberoftimesbasicoperationisexecutedinputsize其中:cop为特定计算机上一个基本操作的执行时间,
5、是常量。2021/9/156LingJie/GDUT2.1.3增长次数小规模的输入在运行时间上不能区分高效的算法与低效的算法,要考虑对于大规模输入时执行次数的增长次数。nlog2nnlog2nn2n32nn!103.33.3×101021031033.6×1061026.66.6×1021041061.3×10303.6×10157103101.0×104106109105171.7×106101010152021/9/157LingJie/GDUT2.1.4算法最优、最差和平均效率算法最差效率:当输入规模为n时,算法在最坏情况下的效率。算法最优效率:当输入规模为n时,
6、算法在最理想情况下的效率。算法平均效率:在“随机”或“典型”输入时(规模仍为n),算法的效率。平均效率的研究方法:一般将规模为n的实例分为几种类型,在假设各种输入的概率分布,推导出基本操作的平均次数。2021/9/158LingJie/GDUT2.1.4顺序查找的效率最差效率:最优效率:平均效率:2021/9/159LingJie/GDUT2.1小结:算法分析框架的要点算法的时间效率与空间效率都是算法输入量的函数。时间效率的衡量通过算法基本操作执行次数的估计进行,而空间效率的衡量是通过算法运行所占用额外的存储器资源量进行的。有些算法时空复杂度在相同输入量下可能由于具体输
7、入值的不同而不同,因此需要考虑最好情况下、最坏情况下以及一般情况下的算法时间复杂度。算法的分析框架关注的内容是当输入量很大,趋向无穷的时候,算法的时间复杂度是如何增长,即使用算法的时间复杂度的渐进表示法。2021/9/1510LingJie/GDUT2.2渐进符号和基本效率类型三个渐进符号:常用函数符号:t(n):一个算法运行的时间C(n):基本操作次数g(n):用来比较的函数2021/9/1511LingJie/GDUT1、三个渐进符号的定义O的定义:存在常数c>0和非负整数n0,使得对所有nn0,有t(n)cg(n)则称函数t(n
此文档下载收益归作者所有