小白看时间复杂度

关于时间复杂度

	时间复杂度的意义在于可以在不运行的情况下知道哪个算法花费的时间多,哪个算法花费的时间少。
	这对于优化代码,评价算法的优劣是很有用的。
1.什么是时间复杂度
	在计算机科学中,时间复杂性,又称时间复杂度,算法的时间复杂度是一个函数,它定性描述该算法的运行时间。
	这是一个代表算法输入值的字符串的长度的函数。(以上来自百度百科)
	百度百科的看着有点抽象,我个人的理解是:根据与代码语句的执行次数而成正比变化的函数。假设每条语句执行消耗的时间一致,
	那么执行次数越多,消耗的时间自然就多,而时间复杂度自然就高;
2.时间复杂度的写法(格式)
	时间复杂度一般用大写O表示;
	常数级时间复杂度记为:O(1);
	线性级:O(n),
	平方级:O(n²)
	等;
	基本就是O()括号里放对应的n的表达式;
	我对此的理解是:n是可以决定代码执行次数的某种数(变量),f(n)就是执行次数相对与n的变化趋势,O(f(n))就是时间复杂度;
3.计算时间复杂度
	时间复杂度只计算量级最大的那条代码语句。
	这个我觉得还是可以理解的,低量级的时间复杂度的增长趋势相对与高量级的时间复杂度来说,是可以忽略不计的,
	自然就可以省略不计算,反正也不是精确的去计算代码的执行时间。
	举个例子:
for(int i=0;i<n;i++)
{
	cout<<"075天下第一"<<endl;//执行n次
	for(int j=0;j<n;j++)
	{
		cout<<"076天下第一"<<endl;//执行n²次
	}
}
	这段代码中有一个执行了n次的语句和一个执行了n²次的语句,它们的时间复杂度分别是O(n)和O(n²),总执行次数是n+n²,
	总的时间复杂度本应该是O(n+n²),但是因为O(n)的量级低于O(n²),所以可以忽略,这段代码的时间复杂度是O(n²);
	以上就是一个小白对时间复杂度的理解,如有错误,欢迎指正( ̄▽ ̄)";
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值