算法时间效率分析

您所在的位置:网站首页 空间复杂度分析方法包括什么 算法时间效率分析

算法时间效率分析

2024-07-10 08:50:54| 来源: 网络整理| 查看: 265

文章目录 概念几种典型循环结构的效率线性循环对数循环线性对数循环多项式循环依赖多项式循环 求效率函数的一般方法Big-O 表达式

概念

算法的复杂度分析包括空间复杂度分析和时间复杂度分析。

算法复杂度 空间复杂度 时间复杂度 算法过程中所需的内存空间 算法运行所需的时间 不同的机器性能 运行的语句数量

对于现代计算机,内存已经比较足够,对算法效率影响最大的是时间复杂度。 在时间复杂度的分析中,抛开具体机器,我们主要研究的是运行的语句数量。 运行的语句数量取决于需要处理的元素个数和算法的循环结构。

引入函数 f ( n ) f(n) f(n)来表示一个算法的效率,其中 n n n表示要处理的数据量。

几种典型循环结构的效率

效率分析我们主要关注循环结构,现就几种典型的循环结构探讨它的算法效率公式:

线性循环(linear loops)对数循环(logarithmic loops)嵌套循环(nested loops) 线性对数循环(linear logarithmic)多项式循环(quadradic)依赖多项式循环(dependent quadratic) 线性循环 i=0; while(i //应用代码; i=i+2; }

这一部分的效率函数可以表示为: f ( n ) = n / 2 f(n)=n/2 f(n)=n/2。

对数循环 i=0; while(i //应用代码; i=i/2; }

这一部分的效率函数可以表示为: f ( n ) = l o g 2 ( n ) f(n)=log_2(n) f(n)=log2​(n)。

线性对数循环 i=1; while(i //应用代码; j=j*2; } i=i+1; }

内层循环为对数循环,应用代码执行次数为 l o g 2 ( n ) log_2(n) log2​(n)。 外层循环为线性循环,内层代码执行次数为 n n n,因此对数循环总共执行 n n n次。 应用代码执行总次数为 n ∗ l o g 2 ( n ) n*log_2(n) n∗log2​(n)。 这一部分的效率函数可以表示为: f ( n ) = n ∗ l o g 2 ( n ) f(n)=n*log_2(n) f(n)=n∗log2​(n)。

多项式循环 i=1; while(i //应用代码; j=j+1; } i=i+1; }

对于内层循环,应用代码执行 n n n次;对于外层循环,内部结构执行 n n n次。 应用代码总共执行 n 2 n^2 n2次。 因此,这一部分的效率函数可以表示为: f ( n ) = n 2 f(n)=n^2 f(n)=n2。

依赖多项式循环 i=1; while(i //应用代码; j=j+1; } i=i+1; }

对于内层循环,应用代码的执行次数取决于外层循环,平均执行次数为 ( n + 1 ) / 2 (n+1)/2 (n+1)/2。 外层循环的执行次数为 n n n。 应用代码总共执行 n ∗ ( n + 1 ) / 2 n*(n+1)/2 n∗(n+1)/2次。 因此,它的效率函数可以表示为: f ( n ) = n ∗ ( n + 1 ) / 2 f(n)=n*(n+1)/2 f(n)=n∗(n+1)/2。

求效率函数的一般方法 i=1; while(i //应用代码; j=j+1; } i=i+1; } k=n; while(k>=1){ //应用代码; k=k/2; }

对于嵌套的循环结构,执行次数为外层循环次数乘以内层循环次数;对于并列的循环结构,执行次数为将两个循环的次数相加。上述代码的算法效率公式为 f ( n ) = n 2 + l o g 2 ( n ) f(n)=n^2+log_2(n) f(n)=n2+log2​(n)。

Big-O 表达式

表示某一算法的效率处在哪一个档次。

计算方法:

保留算法效率公式 f ( n ) f(n) f(n)的最高次项(算法复杂程度最高的项),摄取其余项。将其系数设为1。项的复杂程度由低到高分别为: l o g 2 ( n ) log_2(n) log2​(n), n n n, n ∗ l o g 2 ( n ) n*log_2(n) n∗log2​(n), n 2 n^2 n2, n 3 n^3 n3, …, n k n^k nk, 2 n 2^n 2n, n ! n! n!。

例如: f ( n ) = 4 ∗ n 3 + n ∗ l o g 2 ( n ) + 50 ∗ l o g 2 ( n ) f(n)=4*n^3+n*log_2(n)+50*log_2(n) f(n)=4∗n3+n∗log2​(n)+50∗log2​(n)

最高次项为: 4 ∗ n 3 4*n^3 4∗n3系数设为1: n 3 n^3 n3

因此,这个算法的Big-O表达式为: O ( n 3 ) O(n^3) O(n3)



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭