1.乙個程式或演算法的時間效率,也稱「時間複雜度」,有時簡稱「複雜度」。
2.複雜度常用大的字母o和小寫字母n來表示,比如o(n),o(n²)等。n代表問題的規模。
3.時間複雜度是用演算法執行過程中,某種時間固定的操作需要被執行的次數和n的關係來度量的。在無序數列中查詢某個數,複雜度是o(n)。
4.計算複雜度的時候,只統計執行次數最多的(n足夠大時)那種固定操作的次數。比如某個演算法需要執行加法n²次,除法n次,那麼就記其複雜度是o(n²)。
5.複雜度有「平均複雜度」和「最壞複雜度」兩種。兩者可能一致,也可能不一致。
6.如果複雜度是多個n的函式之和,則只關心隨n的增長,增長最快的那個函式:
o(n²+n³) ==>o(n³)
o(2^n+n³) ==>o(2^n)
o(n!+3^n) ==>o(n!)
7.常數複雜度(與問題的規模無關):o(1)
對數複雜度:o(log(n))
線性複雜度:o(n)
多項式複雜度:o(n^k)
指數複雜度:o(a^n)
階乘複雜度:o(n!)
例:1.在無序數列中查詢某個數(順序查詢):o(n)
2.平面上有n個點,要求出任意兩點之間的距離:o(n²)
3.插入、選擇、氣泡排序:o(n²)
4.快速排序:o(n*log(n))
5.二分查詢:o(log(n))
程式或演算法的時間複雜度 演算法 筆記
概念 乙個程式或演算法的時間效率,也稱時間複雜度,複雜度 計算複雜度的秩統計執行次數最多的那種固定操作的次數。分類 平均複雜度和壞複雜度 注意 如果複雜度時多個n的函式之和,則只關心隨n的增長增長最快的那個函式 名稱複雜度 常數複雜度 o 1 對數複雜度 o log n 線性複雜度 o n 多項式複...
演算法時間複雜度空間複雜度
演算法 是解決某一類問題的通法,即一系列清晰無歧義的計算指令。每個演算法只能解決具有特定特徵的一類問題,但乙個問題可由多個演算法解決。乙個演算法應該有以下五個方面的特性 比較演算法的優劣我們從兩個維度去進行考量 時間 空間 時間複雜度,空間複雜度 找出基本語句 演算法中執行次數最多的那條語句就是基本...
演算法 時間複雜度 空間複雜度
1 if i 1 2 a 1 result 3 4 result n 2 result 1000 1000 3 array.push a array.pop 4 map.set 1,1 map.get 1,1 在計算複雜度的時候,o 1 一般會被忽略。1 for let i 0 i n i 2 wh...