时间频度和时间复杂度

本文介绍了时间频度和时间复杂度的概念。时间频度,又称语句频度,表示代码运行次数,与运行时间成正比。而时间复杂度是定性描述算法运行时间的函数,通常使用大O符号表示,并忽略低阶项和首项系数。随着输入值n趋近无穷,时间复杂度成为衡量算法效率的主要依据。在分析算法时,常数项和低次项在n足够大时会被忽略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间频度/语句频度

  • 时间频度也叫语句频度。时间频度表示代码运行的次数,代码运行的次数与时间正正比
  • 小明去小红家,我们都知道两点直接线段最短。假设小明每走一步相当于,运行一次代码。则如果小明绕路走的话,走的步数越多,花的时间也越多。步数和所花的时间成正比。
  • 时间频度通常用 T(n)表示

时间复杂度

算法的时间复杂度(Time complexity)是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。
时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,亦即考察输入值大小趋近无穷时的情况。通常用T(o)表示

  • 时间复杂度也称为时间渐进复杂度,时间复杂度相当于时间频度的简写版,忽略次要的,保留了主要的。在算法中主要看最复杂的执行时间最长的语句
  • 时间频度/时间复杂度 T(n)/T(O) 如果n无限大比值不为0,T(n)=T(o),T(o)是时间渐进复杂度
  1. 时间频度忽略常数
for(int i=0;i<n;i++){
		System.out.println("11");

}
System.out.println("1");
System.out.println("2");
System.out.println("3");
  • 这里时间频度跟n有关系,n多少次里面的语句执行多少次,最后还要判断一次最后执行n+1
    在加上后面执行三条语句则是n+1+3次
    当n很大时,比如900000+4 时常数项可以忽略不记,不管执行多少次,常数项都是固定的
  1. 忽略低次项
forint i=0;i<n;i++{
	for(int j=0;j<n;j++){
		for(int k=0;j<n;j++){

		}
	}
}

for(int j=0;j<n;j++){

}
  • 时间频度为:nnn+n =》 n的三次方+n
  • 当n趋近于无穷大时可以忽略低次项n
  1. 可以忽略系数

常见时间复杂度

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值