左神演算法筆記02
阿新 • • 發佈:2020-12-12
左神演算法筆記02
連結串列結構
單向連結串列,雙向連結串列,暫時沒將具體演算法
棧、佇列
用連結串列實現和用陣列實現
遞迴行為
定義
在函式裡呼叫自身,一般用來將大問題劃分成多個小問題,簡化問題。
主方法
T
[
N
]
=
a
∗
T
[
N
b
]
+
O
[
N
d
]
T[N] = a*T[\frac N b]+O[N^d]
T[N]=a∗T[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[Nd∗logN]
雜湊表
在傳參時注意點
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]。