算法的时间复杂度大O记法

算法的时间复杂度大O记法

今天初步学习了算法的时间复杂度的详解以及大O记法,主要记录一下如何用大O记法表示算法的时间复杂度。

下面是求1-100和三种算法

第一种算法

public static void main(String[] args){
	int sum=0;
	int n=100;
	sum=(n+1)*n/2;
	System.out.println("sum="+sum);
}

第二种算法

public static void main(String[] args){
	int sum=0;
	int n=100;
	for(int i=1;i<=n;i++){
	sum=sum+i;
	System.out.println("sum="+sum);
	}
	

第三种算法

public static void main(String[] args){
	int sum=0;
	int n=100;
	for(int i - 1;i <=n ; i++){
		for(int j - 1; j <=n;j++){
		sum++i;
		}
	}
	System.out.println("sum="+sum);
}

先来简单分析一下这三段代码,如果忽略执行次数和输出语句的执行次数,那么当输入规模为n时,以上算法执行的次数分别为:
算法一: 3次
算法二: n+3次
算法三: n^2+2次

 那么 重点来了,如何使用大O记法来表示算法的时间复杂度呢?

1. 用常数1取代运行时间中的所有加法常数;

2. 在修改后的运行次数中.只保留高阶项;

3. 如果最高阶项存在,且常数因子不为1,则除去与这个项相乘的常数;

所以就可以得到上面三种算法的时间复杂度:

算法一: O(1)
算法二: O(n)
算法三: O(n^2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值