1 / 49
文档名称:

算法效率分析基础概要.pptx

格式:pptx   大小:414KB   页数:49页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

算法效率分析基础概要.pptx

上传人:wz_198613 2020/3/8 文件大小:414 KB

下载得到文件列表

算法效率分析基础概要.pptx

文档介绍

文档介绍:2020/3/6LingJie/GDUT1第2章算法效率分析基础主要内容:,对于一个算法的分析主要是对算法效率的分析,包括了衡量其运行速度的时间效率以及衡量算法运行需要占用空间大小的空间效率。对于早期的计算机来说,时间与空间都是极其珍贵的资源。半个世纪以来,硬件技术的发展大大提高了计算机的存储容量,使得存储容量的局限性对于算法的影响大大降低了。但时间效率并没有得到相同程度的提高。因此,算法的时间效率是算法分析中的关键部分。2020/3/6LingJie/:大部分算法的执行时间随着输入量的增加而增大。例如在对一个数组进行排序时,数组越大,排序需要的时间就越长。因此从逻辑上来说,算法的效率应该是输入量的函数。选择哪个参数表示输入规模是有差异的。如计算两个n阶矩阵的乘积,选择矩阵阶数和矩阵元素个数作为输入规模求的的算法效率是有差别的。选择输入规模的合适度量受算法的操作细节影响,如拼写检查算法可以使用字符或词的数量作为输入规模。如果算法是与数字特性相关的,其输入规模的度量应当引起注意。例如:检查给定的整数是否为质数,倾向于度量数字n的二进制表示中的比特数。2020/3/6LingJie/。因此衡量算法时间的单位很自然的会想到用“秒”、“毫秒”等实际的时间单位。这对于算法的测试者而言是很直观的,但是存在的问题是:编译算法的时间与编译程序的好坏有关,即使只考虑算法运行时间,得到的时间也受到了运行该算法的计算机速度的影响。因此一个算法在某一台计算机上实现得到的时间对于其他的计算机是没有参考意义的。2020/3/6LingJie/GDUT5统计算法每一步操作的执行次数——不可行。统计算法中最重要的操作—基本操作的执行次数。排序的基本操作:比较矩阵乘法的基本操作:乘法多项式求值的基本操作:乘法执行次数C(n)是输入规模n的函数,算法运行时间T(n)是执行次数的函数:2020/3/6LingJie/GDUT6Basicoperation:(n)≈copC(n)runningtimeexecutiontimeforbasicoperationNumberoftimesbasicoperationisexecutedinputsize其中:cop为特定计算机上一个基本操作的执行时间,是常量。2020/3/6LingJie/,要考虑对于大规模输入时执行次数的增长次数。nlog2nnlog2nn2n32nn!×××××**********.0××106101010152020/3/6LingJie/、最差和平均效率算法最差效率:当输入规模为n时,算法在最坏情况下的效率。算法最优效率:当输入规模为n时,算法在最理想情况下的效率。算法平均效率:在“随机”或“典型”输入时(规模仍为n),算法的效率。平均效率的研究方法:一般将规模为n的实例分为几种类型,在假设各种输入的概率分布,推导出基本操作的平均次数。2020/3/6LingJie/:最优效率:平均效率:2020/3/6LingJie/:算法分析框架的要点算法的时间效率与空间效率都是算法输入量的函数。时间效率的衡量通过算法基本操作执行次数的估计进行,而空间效率的衡量是通过算法运行所占用额外的存储器资源量进行的。有些算法时空复杂度在相同输入量下可能由于具体输入值的不同而不同,因此需要考虑最好情况下、最坏情况下以及一般情况下的算法时间复杂度。算法的分析框架关注的内容是当输入量很大,趋向无穷的时候,算法的时间复杂度是如何增长,即使用算法的时间复杂度的渐进表示法。

最近更新