`

时间复杂度

 
阅读更多

常见的时间复杂度

 

常数阶 O(1) 顺序语句

int sum = 0, n = 100;   
sum = (1+n)*n/2;       

 
线性阶 O(n) FOR循环

int i, sum = 0, n = 100;
for( i=1; i <= n; i++ )  
{
    sum = sum + i; 
}

 
平方阶 O(n^2) 嵌套的FOR循环

int i, j, x=0, sum=0, n=100;
for( i=1; i <= n; i++ )
{
    for( j=1; j <= n; j++ )
    {
        x++;
        sum = sum + x;
    }
}

 

int factorial(int n)
{
    if(n <= 1)
    {
        return 1;
    }
    else
    {
        return n*factorial(n-1);
    }
}

 
对数阶 O(logn)

int i = 1, n = 100;
 
while( i < n )
{
    i = i * 2;
}

 
nlogn阶 O(nlogn)

立方阶 O(n^3)

指数阶 O(2^n)

 

常用的时间复杂度消耗的时间从小到大以此是O(1) < O(logn) < (n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)

 

请给出一下代码的时间复杂度

int factorial(int n)
{
    if(n <= 1)
    {
        return 1;
    }
    else
    {
        return factorial(n-1)*factorial(n-2);
    }
}

 

n++;
function(n);
 
for(i=0; i < n; i++) 
{
    function(i);
}
 
for(i=0; i < n; i++) 
{
	for(j=i; j < n; j++) 
    {
	    printf(“%d”, j);
	}
}
 
void function(int count) 
{
    int j;
    for(j=count; j < n; j++) 
    {
        printf(“%d”, j);
    }
}

 

int i, j, x=0, sum=0, n=100;
for( i=1; i <= n; i++ )
{
    for( j=i; j <= n; j++ )
    {
        x++;
        sum = sum + x;
    }
}

 

分享到:
评论

相关推荐

    数据结构时间复杂度

    ### 数据结构时间复杂度详解 #### 一、算法时间复杂度定义 在计算机科学中,算法的时间复杂度是一个衡量算法效率的重要指标。它用来描述算法的运行时间与输入数据规模之间的关系。通常,我们关心的是算法运行时间...

    平衡二叉树时间复杂度计算1

    "平衡二叉树时间复杂度计算1" 在计算机科学中,平衡二叉树是一种特殊的二叉树数据结构,它的时间复杂度计算是非常重要的。下面我们将详细介绍平衡二叉树的时间复杂度计算。 首先,让我们了解什么是平衡二叉树。...

    算法的设计与分析——时间复杂度.docx

    算法设计与分析——时间复杂度 算法设计与分析是计算机科学中的一门重要课程,旨在研究和分析算法的设计、实现和优化。时间复杂度是算法设计与分析的核心概念之一,指的是算法执行所需的时间成本。了解时间复杂度...

    排序算法时间复杂度的分析java语言描述

    - 时间复杂度:快速排序的平均时间复杂度为O(n log n),但在最坏情况下(输入序列已排序或逆序)时间复杂度为O(n²)。通常,快速排序被认为是实际应用中最快的排序算法之一。 5. **插入排序(Insertion Sort)** ...

    NOIP普及组 提高组 CSP-J CSP-S初赛 算法的时间复杂度部分题目(2023.09.15)C.pdf

    在计算机科学中,算法的时间复杂度是对算法运行时间的一个度量,它反映了问题规模n增长时,算法执行步骤的数量的增长趋势。本题集主要涉及了NOIP(全国青少年信息学奥林匹克竞赛)普及组和提高组的CSP-J(Junior)和...

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

    ### 算法的时间复杂度与空间复杂度详解 #### 一、算法复杂度概述 在计算机科学领域,算法的时间复杂度与空间复杂度是衡量一个算法效率的重要指标。时间复杂度关注的是算法执行时间的增长速率,而空间复杂度则侧重...

    遗传禁忌搜索算法收敛性和时间复杂度分析

    应用马尔科夫链模型证明了遗传禁忌搜索算法是以概率1收敛到全局最优解的,并应用求解随机算法时间复杂度的方法,即求解算法的期望收敛时间,估算了该算法的时间复杂度,结果证明该算法的时间复杂度与所得解的多样性、...

    算法的时间复杂度分析.pdf

    ### 算法的时间复杂度分析 #### 一、引言与基本概念 算法的时间复杂度是衡量一个算法效率的关键指标之一。它反映了随着输入数据规模的增长,算法所需执行时间的增长速度。通常情况下,时间复杂度越低的算法,在...

    时间复杂度计算练习.zip

    本资源“时间复杂度计算练习.zip”提供了深入理解和掌握时间复杂度计算的实践练习,包括一篇详细讲解的时间复杂度计算练习.docx文档以及一份实现源码的时间复杂度计算练习.cpp。 首先,我们来深入了解时间复杂度。...

    算法实验代码和报告(时间复杂度、0-1背包问题、分治与贪心、蛮力法)

    本资源包含的“算法实验代码和报告”聚焦于几个重要的算法概念:时间复杂度、0-1背包问题、分治策略以及贪心方法,这些都是计算机科学中基础且实用的知识点。 首先,我们来看**时间复杂度**。时间复杂度是用来衡量...

    时间复杂度的几种计算方法

    时间复杂度的几种计算方法 时间复杂度是算法优劣的重要指标,是数据结构的重要理论基础,是学习和教学过程中贯穿始终的主要线索。该知识点是数据结构的重要组成部分,对算法的时间性能进行评估和分析。时间复杂度的...

    关于算法时间复杂度的计算

    算法时间复杂度的计算 算法时间复杂度的计算是计算机科学中一个非常重要的概念,它描述了算法执行时间随着输入规模的变化而增长的速度。时间复杂度通常用大 O 记法表示,即 O(f(n)),其中 f(n) 是问题规模 n 的函数...

    计算计算法基础-时间复杂度

    ### 计算机算法基础——时间复杂度 #### 引言 在计算机科学领域,算法的设计与分析至关重要。其中,时间复杂度作为衡量算法效率的关键指标之一,对于优化程序性能、提升软件质量具有不可替代的作用。本文将通过具体...

    桶排序的时间复杂度的计算公式.docx

    桶排序的时间复杂度分为两个部分:桶内排序的时间复杂度和合并桶的时间复杂度。 1. 桶内排序的时间复杂度:如果每个桶都使用插入排序,那么每个桶的时间复杂度为O((n/k)²),因为插入排序在最坏情况下需要O(n²)的...

    NOIP普及组 提高组 CSP-J CSP-S初赛 算法的时间复杂度部分题目.pdf

    算法时间复杂度的相关知识点 从给定的文件信息中,我们可以看到该文件主要关注算法的时间复杂度,涉及到算法设计、递归式、主定理等概念。下面,我们将对这些知识点进行详细的解释和分析。 一、算法时间复杂度 ...

    矩阵乘法时间复杂度Matlab演示

    在计算机科学中,时间复杂度是衡量算法效率的重要指标,它描述了算法执行时间与输入数据大小之间的关系。本主题将深入探讨如何使用Matlab来分析矩阵乘法的时间复杂度,以及如何通过可视化来理解这一概念。 矩阵乘法...

    数据结构时间复杂度超详细概念解析(附实例)

    数据结构时间复杂度超详细概念解析 数据结构是计算机科学中一个非常重要的概念,而时间复杂度是数据结构中一个非常重要的分析方法。时间复杂度是指算法执行时间随输入规模增长而增长的量级,它是评价算法优劣的重要...

    分治法与时间复杂度计算

    **分治法与时间复杂度计算** 在计算机科学中,分治法是一种强大的算法设计策略,它将一个大问题分解为几个小问题来解决。这种技术的核心思想是“分割”和“合并”,即将一个问题分解成两个或更多的相同或相似的子...

Global site tag (gtag.js) - Google Analytics