Ο(1)<Ο(log2n)<Ο(n)<Ο(nlog2n)<Ο(n2)<Ο(n3)<…<Ο(2n)<Ο(n!)前端
Temp=i; i=j; j=temp;
複製代碼
while (i<=n)
i=i*2; //語句1
複製代碼
設基礎語句1的頻度是f(n),則:2^f(n)<=n;f(n)<=log2n,取最大值f(n)=log2n,T(n)=O(log2n )算法
for (i=1;i<=n;i++){
console.log(i) //語句1
}
複製代碼
T(n)=2+n+3(n-1)=4n-1=O(n)bash
for(i=1;i<=n;i++){
for(j=1;j<=n/2;j++){
console.log(j)//語句1
}
}
複製代碼
由於語句1執行n * n/2=(1/2)次,Θ((1/2))=(Θ即:去低階項,去掉常數項,去掉高階項的常參獲得),因此T(n)= =O();函數
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
for(k=1;k<=n;k++){
console.log(k)//語句1
}
}
}
複製代碼
由於語句1執行n * n * n=*次,因此T(n)=O();spa
算出前端常見算法的時間複雜度,如冒泡排序,快速排序code