最好情況時間複雜度
最壞情況時間複雜度
平均情況時間複雜度
均攤時間複雜度
例:在乙個無序的陣列(array)中,查詢變數 x 出現的位置。如果沒有找到,就返回 -1
// n表示陣列array的長度
intfind
(int
array,
int n,
int x)
return pos;
}
時間複雜度:o(n
nn)
// n表示陣列array的長度
intfind
(int
array,
int n,
int x)
}return pos;
}
最好時間複雜度:o(1)
最壞時間複雜度:o(n)
平均時間複雜度:o(n)
因為,要查詢的變數 x 可能出現在陣列的任意位置。如果陣列中第乙個元素正好是要查詢的變數 x,那就不需要繼續遍歷剩下的 n-1 個資料了,那時間複雜度就是 o(1)。但如果陣列中不存在變數 x,那我們就需要把整個陣列都遍歷一遍,時間複雜度就成了 o(n)
例:實現了乙個往陣列中插入資料的功能
// array表示乙個長度為n的陣列
// **中的array.length就等於n
int[
] array =
newint
[n];
int count =0;
void
insert
(int val)
array[0]
= sum;
count =1;
} array[count]
= val;
++count;
}
均攤時間複雜度:o(1) 《大話資料結構》資料結構與演算法學習筆記3
演算法複雜度 設問題的輸入規模為n,判斷乙個演算法的效率時,函式中的常數和其他次要項通常可以忽略,而應該更加關注主項 最高端項 的階數。就是和數學分析裡判斷兩個函式高低階的思路一樣。如果規範一下說法,就是演算法時間複雜度 演算法時間複雜度 定義 在進行演算法分析時,語句總的執行次數t n 是關於問題...
資料結構與演算法學習筆記
演算法基礎篇 第一章 演算法概述 首先了解一下基本的概念 1.1 什麼是演算法呢?從字面意義上理解,演算法就是用於計算的方法,用這種方法達到預期的結果。通俗的講,演算法可以理解為乙個完整的解題步驟,由一些基本的運算和規定的運算順序組成。通過這樣的解題步驟可以解決特定的問題。演算法可以抽象出5個特徵 ...
資料結構與演算法學習筆記(一)
資料 計算機操作的物件 資料元素 組成資料的基本基本單位 資料項 乙個資料元素可以由若干個資料項組成 資料物件 性質相同的資料元素的集合 資料結構 是相互之間存在一種或多種特定關係的資料元素的集合 資料型別 1.原子型別 不可以在分解的基本型別,包括整型,字元型 2.結構型別 由若干個型別組合而成 ...