首页 > 编程知识 正文

算法时间复杂度总结(算法空间复杂度怎么算)

时间:2023-05-06 16:25:34 阅读:86528 作者:3749

时间的复杂性

1 .时间频率

执行一个算法的时间

2 .时间的复杂性

n被称为事件规模,当n不断变化时,时间频率t(n )也不断变化。 这个变化规律称为时间复杂度。 一般来说,算法中基本操作的重复执行次数是具有问题规模n的函数,如果具有某个辅助函数f(n ),则表示存在总是fn*c=T(n ) n )成立的正常数c ) n。 标记为t(n )=o ) f(n ) ),将o ) f ) n )称为算法的渐进的时间复杂度,简称为时间复杂度。

空间复杂性

Space Complexity测量的是一种算法在运行时临时占用存储容量的大小

复杂度分析

通常,一个算法的复杂度由其输入量决定,复杂度随着输入的增加而变化。 为了降低算法的复杂度,也需要考虑输入量来设计好的算法

实际计算算法的复杂性(以时间为基准)

删除影响小的常数相

o (一) )。

国际货币基金组织

printf (问候,世界! n ';//需要执行一次

返回0;//需要执行一次

}

//t(n )=2表示复杂度为o ) )1)

o(n ) )。

国际货币基金组织

for (英制=0; in; I ()//执行) n 1)次需要

printf (问候,世界! n '; 需要执行//n次

}

返回0;//需要执行一次

}

如果//t(n )=n ) n1),则o ) ) ) )。

o(n (二) ) ) )。

voidafunc (国际) {

//第一部分的时间复杂度为o(n^2) () ) ) () ) ) ) ) ) ) ) ) ) )。

for (英制=0; i n; I ) {2}

for(intj=0; j-n; j ) {2}

printf (问候,世界! n ';

}

}

//第二部分的时间复杂度为o(n )

for(intj=0; j-n; j ) {2}

printf (问候,世界! n ';

}

}

//t(n )=nn* ) n1) n )如果是n1),则为o(n^2) ) ) ) ) ) ) ) ) ) ) ) ) )。

包含判断的算法

voidafunc (国际) {

if(n=0) {

//最初路径的时间复杂度为o(n^2)

for (英制=0; i n; I ) {2}

for(intj=0; j-n; j ) {2}

printf (输入数据为零以上n );

}

}

} else {

//第二个通路的时间复杂度为o(n )

for(intj=0; j-n; j ) {2}

printf (输入数据小于零(n );

}

}

}

//O(N )2)和o ) n )选择最大的o ) n )2)

o (罗格(n ) () () ) () ) () ) () ) ) ) ) ) ) ) )。

voidafunc (国际) {

for (英制=2; i n; I ) {2}

i *=2; //执行次数t^2=n; 执行次数t=log(2) ) n ) )。

printf(%I(n ),I );

}

}

如果t(t )=log(2)2) ) n )=log(2)2n ),则为o ) log(n ) )

o(2^n ) ) ) )。

longa func (国际) {

if(n=1) {

返回1;

} else {

电子货币(n-1 )基金(n-2 );

}

}

//t(n )=t ) n-1 ) t ) n-2 )可以通过归纳证明法证明为: n=1时为t(n ) )5/3) ) n,同时n 4时为t ) n=)3/2) ) n

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。