`
willsunforjava
  • 浏览: 167885 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

算法运行时间

 
阅读更多

转自:http://blog.csdn.net/richardysteven/article/details/5872672

算法的运行时间通常与下列函数成比例:

 1  大部分程序的大部分指令之执行一次,或者最多几次。如果一个程序的所有指令都具有这样的性质,我们说这个程序的执行时间是常数。
 logN   如果一个程序的运行时间是对数级的,则随着N的增大程序会渐渐慢下来,如果一个程序将一个大的问题分解成一系列更小的问题,每一步都将问题的规模缩减成几分之一,一般就会出现这样的运行时间函数。在我们所关心的范围内,可以认为运行时间小于一个大的常数。对数的基数会影响这个常数,但改变不会太大:当N=1000时,如果基数是10,logN等于3;如果基数是2,logN约等于10.当N=1 00 000,logN只是前值的两倍。当N时原来的两倍,logN只增长了一个常数因子:仅当从N增长到N平方时,logN才会增长到原来的两倍。
 N  如果程序的运行时间的线性的,很可能是这样的情况:对每个输入的元素都做了少量的处理。当N=1 000 000时,运行时间大概也就是这个数值;当N增长到原来的两倍时,运行时间大概也增长到原来的两倍。如果一个算法必须处理N个输入(或者产生N个输出),那么这种情况是最优的。
 NlogN  如果某个算法将问题分解成更小的子问题,独立地解决各个子问题,最后将结果综合起来,运行时间一般就是NlogN。我们找不到一个更好的形容,就暂且将这样的算法运行时间叫做NlogN。当N=1 000 000时,NlogN大约是20 000 000。当N增长到原来的两倍,运行时间超过原来的两倍,但超过不是太多。
 
N平方
 如果一个算法的运行时间是二次的(quadratic),那么它一般只能用于一些规模较小的问题。这样的运行时间通常存在于需要处理每一对输入数据项的算法(在程序中很可能表现为一个嵌套循环)中,当N=1000时,运行时间是1 000 000;如果N增长到原来的两倍,则运行时间将增长到原来的四倍。
 N三次方  类似的,如果一个算法需要处理输入数据想的三元组(很可能表现为三重嵌套循环),其运行时间一般就是三次的,只能用于一些规模较小的问题。当N=100时,运行时间就是1 000 000;如果N增长到原来的两倍,运行时间将会增长到原来的八倍。
 2的N次方  如果一个算法的运行时间是指数级的(exponential),一般它很难在实践中使用,即使这样的算法通常是对问题的直接求解。当N=20时,运行时间是1 000 000;如果增长到原来的两倍时,运行时间将是原时间的平方!
log log N     可以看作是一个常数:即使N很多,两次去对数之后也会变得很小
分享到:
评论

相关推荐

    实验指导书1-对算法运行时间的认识.docx

    本实验旨在帮助学生理解算法运行时间的概念,通过对比不同的算法实现,体会算法效率的差异,并学会如何设计高效算法。实验内容包括三个部分: 1. 求解1到n的累加和。实验中,学生将实现两种方法:逐个累加法和高斯...

    实验指导书1-对算法运行时间的认识.pdf

    实验一的目的是让学生深入理解算法运行时间的概念,通过对比不同算法在解决相同问题时的效率,体验算法设计的重要性。实验内容分为三个部分: 1. 求解 1 到 n 的和。这里涉及两种方法:逐个累加法和高斯求和公式法...

    蚁群算法随机产生城市,两种方法运行时间的对比_riding3mj_tsp_优化运行时间_蚁群算法/随机产生城市_蚁群对比_

    《蚁群算法在TSP问题中的应用与优化:随机城市生成与运行时间比较》 旅行商问题(Traveling Salesman Problem, TSP)是图论中的一个经典问题,旨在寻找一条经过每个城市一次并返回起点的最短路径。蚁群算法(Ant ...

    用三种不同的DFT计算x(n)=R8(n)的傅里叶变换.zip

    描述中提到的“编程实现三种程序的计算机运行时间”,意味着我们需要通过编程语言,如Python、MATLAB或C++,编写三个独立的算法来执行DFT,这三种方法可能是普通的直接计算法、库函数(如MATLAB的`fft`函数)以及更...

    用于计算C++程序或算法的运行时间,基于C++11.zip

    标签中提到了C#,虽然这个压缩包是关于C++的,但如果你同时对C#感兴趣,知道C#也有类似的方式计算运行时间。C#中可以使用`Stopwatch`类,它是`System.Diagnostics`命名空间的一部分: ```csharp using System....

    时间复杂度经典解说.pptx

    在计算机科学中,我们不追求对每个具体输入都精确计算运行时间,而是通过分析算法执行步骤的数量来评估其效率,这便是时间复杂度的概念。 时间复杂度的数学定义是:给定一个算法A,如果存在一个函数f(n),当输入...

    查看程序运行时间和内存的小程序.rar

    计算运行时间的公式是:`(double) (clock() - start_time) / CLOCKS_PER_SEC`,其中`start_time`是在程序开始时记录的`clock()`值,`CLOCKS_PER_SEC`是每秒的时钟周期数。 内存管理是另一个关键领域,尤其是在资源...

    经典算法导论

    本篇将详细介绍算法的基本概念、运行时间的计算方法、不同情况下的运行时间分析,以及如何通过算法效率的分析来选择最佳算法。 ##### 基础 **算法运行时间的计算** - **基本概念**:算法运行时间是指执行算法所需...

    算法设计技巧与分析算法基本概念之算法复杂概要PPT学习教案.pptx

    时间复杂性是指算法在执行过程中所需的时间资源的量,通常用随着输入规模n的增长,算法运行时间的增长速率来表示。这种增长率通过渐进复杂性来度量,例如O、Ω和Θ符号分别代表了算法运行时间的上限、下限和精确阶。...

    运行时间计算

    运行时间计算能帮助我们评估代码效率,优化算法,确保程序在限定的时间内完成任务。本文将详细讲解如何统计程序的运行真实时间,并介绍与之相关的知识点。 首先,我们要明白“运行时间”通常指的是程序从开始执行到...

    算法设计与计算复杂性

    2. **计算复杂性**:计算复杂性理论是研究算法运行时间与问题规模之间的关系。它将算法分为不同的复杂度类别,如P(多项式时间)类,其中问题可以在多项式时间内解决;NP(非确定性多项式时间)类,其中验证解的时间...

    算法分析基础1

    时间效率是衡量算法运行时间随输入规模增长的速度,通常用时间复杂度表示。空间效率虽然重要,但在现代计算机大内存环境下,时间效率更受重视。 在算法分析的一般框架中,首先需要确定输入规模。输入规模是指影响...

    信息学奥赛算法时间复杂度和空间复杂度计算

    常见的时间复杂度有O(1)(常数时间)、O(log n)(对数时间)、O(n)(线性时间)、O(n log n)(线性对数时间)、O(n^2)(平方时间)等,随着阶数的增加,表示算法运行时间的增长速度越快。 其次,空间效率是指算法在...

    计算机算法概率算法正规版资料.ppt

    即使某些输入实例可能导致确定性算法运行时间较长,概率算法可以在大多数输入实例上提供较快的平均运行时间。它可以应用于线性时间选择算法和快速排序等。 6. **随机预处理**:在某些情况下,确定性算法不能直接...

    AGV运行时间计算

    基于两个AGV在两个加工工作点间运行的时间计算程序,利用matlab编程

    算法设计与分析课件-第二章 算法效率分析基础.ppt

    这是因为小规模输入在运行时间上差别不足以将高效的算法和低效的算法法区分开来。 2.1.4 算法的最优、最差和平均效率 一个算法的最差效率是指当输入规模为n时,算法的最坏情况下的效率。这时,相对于其他规模为n的...

    算法与算法分析 - 02 算法分析基础.pdf

    在分析算法时,还要考虑影响程序运行时间的因素,除了算法本身,还包括问题规模和输入数据、计算机系统性能等。在实际应用中,算法的执行时间并不总是能够精确计算,因此,从精确表示过渡到数量级的估计是一种实用的...

    论文研究-基于均匀设计的中心引力优化算法.pdf

    中心引力优化(Central Force Optimization,CFO)算法是一种新型多维搜索确定型启发式优化算法,但由于它的初始探测器(Probe)计算复杂而导致CFO算法运行时间过长。针对初始探测器计算复杂问题,提出一种均匀设计...

    山东建筑大学计算机学院算法分析算法复习题Yuconan翻译.doc

    1. 大O记号提供了算法运行时间的渐近上界。这意味着当输入规模趋于无穷大时,算法的最坏情况运行时间不会超过这个上界。例如,如果一个算法被标记为O(n),则表示其运行时间与输入大小n成正比,但不会更快。 2. 大Ω...

    算法 时间复杂度 空间复杂度 经典

    **时间复杂度**定义了算法运行时间与输入数据规模之间的关系。它通常用大O符号表示,并且通过最坏情况下的计算来确定。下面详细介绍时间复杂度的几个关键概念: 1. **基本操作计数:** - 每个算法中的基本操作(如...

Global site tag (gtag.js) - Google Analytics