1. 程式人生 > 其它 >左神演算法筆記02

左神演算法筆記02

技術標籤:演算法學習演算法

左神演算法筆記02

連結串列結構

單向連結串列,雙向連結串列,暫時沒將具體演算法

棧、佇列

用連結串列實現和用陣列實現

遞迴行為

定義

在函式裡呼叫自身,一般用來將大問題劃分成多個小問題,簡化問題。

主方法

T [ N ] = a ∗ T [ N b ] + O [ N d ] T[N] = a*T[\frac N b]+O[N^d] T[N]=aT[bN]+O[Nd]
時間複雜度為:
1: l o g a b > N d log_ab > N^d logab>

Nd時, O [ N ] = O [ l o g a b ] O[N]=O[log_ab] O[N]=O[logab]
2.: l o g a b > N d log_ab > N^d logab>Nd時, O [ N ] = O [ N d ] O[N]=O[N^d] O[N]=O[Nd]
3. l o g a b = N d log_ab = N^d logab=Nd時, O [ N ] = O [ N d ∗ l o g N ] O[N]=O[N^d*logN] O[N]=O[NdlogN]

雜湊表

在傳參時注意點

Java中int,double等型別為基本型別,傳參時按值傳遞。Integer,Double等型別傳參時是引用傳遞。

區別:

int a = 127;
int b = 127;
a == b;

結果為true,對具體數字無要求

Integer a = 127;
Integer b = 127;
a == b;

只有在具體數字x, − 128 < = x < = 127 -128 <= x <= 127 128<=x<=127時結果為true,其它為false。
因為在這個範圍內記憶體是同一個。

增刪改查

無論資料量多大,時間複雜度都為O[1]。