// 時間複雜度
function
gettime
(n)return sum
}// 時間複雜度為 o(2n + 2) 因為係數、常熟對 n 的增長規模沒有影響 不需要考慮,可以忽略
// 所以時間複雜度為 o(n)
// 如果一段**中沒有迴圈、遞迴等語句,通常時間複雜度都是o(1)
function
gettime
(n)}
// 這種成倍數的就是o(logn)
function
gettime
(n)}
return sum;
}// 類似這種巢狀2層的for迴圈 一般都會選擇執行次數最多的 時間複雜度就是 o(n^2)
// 常見的時間複雜度(從低到高): o(1) o(logn) o(n) o(nlogn) o(n^2)
// 空間複雜度
// 常見的空間複雜度
// o(1)
let a =1;
let b =
1// o(n)
let arr =
newarray
(n)// o(n^2)
let arr =
for(
let a =
0; a < n; a++
)}
時間複雜度和空間複雜度
同一問題可用不同演算法解決,而乙個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。乙個演算法的評價主要從時間複雜度和空間複雜度來考慮。1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能...
時間複雜度和空間複雜度
1 時間複雜度 1 時間頻度乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多...
時間複雜度和空間複雜度
演算法的時間複雜度和空間複雜度合稱為演算法的複雜度。1.時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算...