์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ค์ ํ๋ค๋ณด๋ฉด ๋ก์ง๊ณผ ๋์ถ๋๋ ๊ฒฐ๊ณผ๊ฐ์ ๊ฐ์ง๋ง, ์๊ฐ๋ณต์ก๋ ๋๋ฌธ์ ์ ๋จน๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ค.
ํ์คํ ์
๋ ฅ๊ฐ๋ค์ด ๋ง์ผ๋ฉด ๋ง์์๋ก ์๊ฐ๋ณต์ก๋๋ฅผ ๊ณ ๋ คํด์ผํ ๊ฒ๊ฐ๋ค.
https://www.ics.uci.edu/~pattis/ICS-33/lectures/complexitypython.txt
์ด๊ณณ์ ๊ฐ๋ฉด ์จ๊ฐ ์ฐ์ฐ๋ค์ ๋ํ ์๊ฐ๋ณต์ก๋๊ฐ ์๋ค. ์์ฃผ ์ฐ๋๊ฒ๋ค๋ง ์ ๋ฆฌํด๋ณด๋ฉด
Python์ List ์ฐ์ฐ์ ๋ํ ์๊ฐ๋ณต์ก๋
Operation |
ex |
BigO |
Notes |
Index |
arr[i] |
O(1) |
๊ทธ๋ฅ ๊ฐ์ ์ ๊ทผ |
Length |
len(arr) |
O(1) |
|
Append |
arr.append(4) |
O(1) |
|
Pop |
arr.pop() |
O(1) |
|
Slice |
arr[a:b] |
O(b-a) |
์๋ฅผ ๊ธธ์ด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค |
Extend |
arr.extend(...) |
O(len(...)) |
ํ์ฅํ ๊ธธ์ด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค. |
Insert |
arr.insert(i, v) |
O(N) |
|
Delete |
del arr[i] |
O(N) |
|
Pop |
arr.pop(i) |
O(N) |
|
Reverse |
Arr.reverse() |
O(N) |
|
Sort |
arr.sort() |
O(N LogN) |
|
Iteration |
for i in arr: |
O(N) |
|
Store |
arr[i] = v |
O(1) |
๊ทธ๋ฅ ์ ์ฅ, ์์ ํ๋๊ฒ์ ๋งํจ |
์ธ๋ฑ์ค๋ฅผ ์ง์ ํ๋ ์ฐ์ฐ์ ๊ฒฝ์ฐ์ ๋ฌด์กฐ๊ฑด O(N)์ ์๊ฐ๋ณต์ก๋๊ฐ ๋ค์ด๊ฐ๋ค. (๊ตต์ ๊ธ์จ) ์ด ์๋ฃ๋ค์ ๋ณด๋ ์ ๋ฆฌ์คํธ๋ณด๋ค Stack์ด๋, Queue๋ฑ์ด ์ฐ์ฐ์ด ๋น ๋ฅธ์ง ์๊ฒ๊ฐ๋ค.
Python Dictionary ์ฐ์ฐ์ ์๊ฐ๋ณต์ก๋
Operation |
ex |
BigO |
Notes |
Index |
d[k] |
O(1) |
๊ทธ๋ฅ ๊ฐ์ ์ ๊ทผ |
Store |
d[k] = v |
O(1) |
๊ทธ๋ฅ ์ ์ฅ |
Length |
len(d) |
O(1) |
|
Delete |
del d[k] |
O(1) |
|
Get |
d.get |
O(1) |
|
Pop |
d.pop(k) |
O(1) |
|
Pop item |
d.popitem() |
O(1) |
|
Veiw |
d.keys() / d.values() |
O(1) |
|
ํ์คํ Key์ Value๊ฐ์ผ๋ก ์ ๊ทผํ๊ธฐ ๋๋ฌธ์ ๊ฑฐ์ O(1)์ด๋ค.
set์ ์ฌ์ฉํ ์ผ์ด ์ ์์ด์ ์๋ต..