如何计算算法的时间复杂度

小夏 科技 更新 2024-01-31

我们一般用“大o符号符号”来表示时间复杂度:t(n) = o(f(n)) n是影响复杂度变化的因子,f(n)是复杂度特定的算法。

常数阶 o(1)、线性阶 o(n)、对数阶 o(logn)、线性对数阶 o(nlogn)、平方阶 o(n)、三次阶 o(n)k 幂、o(n)、k、指数阶 (2 n)。

int a = 1;int b = 2;int c = 3;
for(i = 1; i <= n; i++)
int i = 1;while(i < n)
可以看到,每次循环时,i 都乘以 2,因此循环总数为 log2n,因此此 ** 的时间复杂度为 o(logn)。

for(m = 1; m < n; m++)
线性对数阶o(nlogn)其实很容易理解,如果时间复杂度是o(logn)的**循环n次,那么它的时间复杂度就是n*o(logn),也就是o(nlogn)。

for(x = 1; i <= n; x++)
如果再次嵌套 o(n) 的 **,则它的时间复杂度为 o(n)。

创建的变量数。

int i = 1;int j = 2;++i;j++;int m = i + j;
int m = new int[n]for(i = 1; i <= n; +i)
在这一段中,第一行 new 一个数组出来了,这个数据的大小是 n,虽然后面有一个循环,但是没有分配新的空间,因此,这个 ** 的空间复杂度主要取决于第一行,即 s(n) = o(n)。

int binarysearch(int arr,int len, int num) else if (num < arr[mid]) else }return -1;}
在二分搜索的情况下,原始搜索内容每次都是二分搜索,因此时间复杂度为 o(logn)。

由于变量值创建一次,因此空间复杂度为 o(1)。

int binarysearchrecursion(int arr[5], int lef, int rig,int aim) else if (arr[mid] 每次进行递归时都会创建一个变量,因此空间复杂度为 o(log2 n)。

int feibonacciinteration(int a,int b,int num) return c; }

时间复杂度 o(n)。

空间复杂度为o(1)。

int feibonaccirecursion(int num)
时间复杂度为 o(2 n)。

空间复杂度为 o(n)。

相似文章

    递归算法的时间复杂度

    递归算法是一种在解决问题的过程中不断调用自身来完成任务的方法。它在编程中应用广泛,可以有效解决许多复杂的问题。然而,递归算法的时间复杂度通常难以确定,因为它涉及递归的深度和重复计算的情况。在本文中,我们将仔细研究递归算法的时间复杂度以及如何分析和优化它们。.递归算法概述。递归算法是一种通过不断调用自...

    回顾时间管理的要点

    从我开始读 精英为什么是时间控制 到现在已经天了,今天就来聊聊这几天的收获和变化。 制定工作清单并制定计划。下班后的第一个半小时用于制作工作清单并计划当天的主要工作目标。工作清单方法,以前是认知觉醒的习,本周继续。首先列出当天要完成的所有工作。然后将工作标记为 专注工作 和 非专注工作 把工作,最困...

    基于PostgreSQL算法的扩展可视化平台(主题开放)。

    选题依据及意义 不少于字 选题依据。将这些新的数据库算法集成到大多数数据库系统中是非常困难的。目前,大多数数据库系统,如MySOL,Oracle,Microsoft SOL Server,其功能扩展性都不好,如果要在这些数据库系统中添加新的算法,往往需要修改这些系统的源代码,无论是开发门槛还是开发周...

    剧本杀《暗星》回顾分析 惊心动魄的旅程,揭开时间的奥秘

    大家好,我是雷姆,今天给大家带来 暗星 的回顾和分析。剧本评论 黑暗之星 是一款引人入胜的剧本杀戮游戏,将我们带入一个异常诡异的时空。这款游戏不仅让我们体验了一场深度探索和解谜的冒险,也让我们感受到了时间的神秘和无常。首先,暗星 的设定和人物设定极具创意。太阳从西边升起,日晷上的阴影逆时针后退度,露...

    逆矩阵算法详解

    逆矩阵是指对于给定的方阵 即行数等于列数的矩阵 存在使得两者的乘积是统一矩阵 对角线上的元素为 ,其他元素为 如果矩阵存在逆矩阵,则逆矩阵通常用 a 表示。n n 矩阵 a 的逆矩阵 a 存在的条件是矩阵 a 是可逆的 也称为非奇异秩或全秩 即矩阵 a 的行列式 det a 不等于 。以下是计算逆矩...