JS: 算法时间复杂度分析

本文介绍了如何分析JavaScript算法的时间复杂度,通过去除常量和保留最高阶项来确定时间复杂度。举例说明了常量、线性、平方数量级的时间复杂度,并以冒泡排序为例,展示了算法在最好和最坏情况下的时间复杂度分析。
摘要由CSDN通过智能技术生成

语句频度:设 n 为求解的问题的规模,基本操作(或语句)执行次数总和称为语句频度,记做f(n)

时间复杂度:算法(或程序)中基本操作(或语句)重复执行的次数总和称为时间复杂度,记做T(n),且有T(n) = O(f(n)) 。

求时间复杂度步骤:
1. 去掉f(n)中所有加法常数
2. 只保留最高阶项

举例:

function plus1(num){
   
	console.log(num);  	// 1
	num++				// 1
	console.log(num); 	// 1
}

语句频度: f(n) = 1 + 1 + 1 = 3
时间复杂度:T(n) = O(f(n)) = O(3) = O(1)
O(1)称为常量数量级

function sum(arr){
   
	var s = 0;					// 1
	var l = arr.length			// 1
	for(var i = 0; i < l; i++){
   	// n
		s += arr[i];			// n
	}
	console
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值