1 / 2
文档名称:

转算法复杂度的分析方法及其运用.docx

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

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

分享

预览

转算法复杂度的分析方法及其运用.docx

上传人:likuilian1 2022/8/13 文件大小:7 KB

下载得到文件列表

转算法复杂度的分析方法及其运用.docx

相关文档

文档介绍

文档介绍:算法复杂度是在《数据结构》这门课程的第一章里出现的,因为它稍微涉及到一些数学问题,所以很多同 学感觉很难,加上这个概念也不是那么具体,更让许多同学复****起来无从下手,下面我们就这个问题给各 位考生进行分析。
首先了解一下几个概念。一个是时间算法复杂度是在《数据结构》这门课程的第一章里出现的,因为它稍微涉及到一些数学问题,所以很多同 学感觉很难,加上这个概念也不是那么具体,更让许多同学复****起来无从下手,下面我们就这个问题给各 位考生进行分析。
首先了解一下几个概念。一个是时间复杂度,一个是渐近时间复杂度。前者是某个算法的时间耗费,它 是该算法所求解问题规模n的函数,而后者是指当问题规模趋向无穷大时,该算法时间复杂度的数量级。 当我们评价一个算法的时间性能时,主要标准就是算法的渐近时间复杂度,因此,在算法分析时,往往 对两者不予区分,经常是将渐近时间复杂度T(n)=O(f(n))简称为时间复杂度,其中的f(n) 一般是算法中 频度最大的语句频度。
此外,算法中语句的频度不仅与问题规模有关,还与输入实例中各元素的取值相关。但是我们总是考虑在 最坏的情况下的时间复杂度。以保证算法的运行时间不会比它更长。
常见的时间复杂度,按数量级递增排列依次为:常数阶0(1)、对数阶O(log2n)、线性阶O(n)、线性对数 阶0(nlog2n)、平方阶0(n”2)、立方阶0(n”3)、k次方阶0(n”k)、指数阶0(2”n)。
下面我们通过例子加以说明,让大家碰到问题时知道如何去解决。
1、 设三个函数 f,g,h 分别为 f(n)=100n"3 n"2 1000 , g(n)=25n"3 5000n"2 , h(n)=n" 5000nlgn 请判断下列关系是否成立:
f(n)=0(g(n))
g(n)=0(f(n))
h(n)=0(n”)
h(n)=0(nlgn)
这里我们复****一下渐近时间复杂度的表示法T(n)=0(f(n)),这里的"0”是数学符号,它的严格定义是''若 T(n)和f(n)是定义在正整数集合上的两个函数,则T(n)=0(f(n))表示存在正的常数C和n0,使得当nNn0 时都满足0WT(n)WC?f(n)。"用容易理解的话说就是这两个函数当整型自变量n趋向于无穷大时,两者的 比值是一个不等于0的常数。这么一来,就好计算了吧。
(1)成立。题中由于两个函数的最高次项都是n”3,因此当n-8时,两个函数的比值是一个常数,所以 这个关系式是成立的。
(2)成立。与上同