ํค์๋
- ์๋ฃ๊ตฌ์กฐ
- ์๊ณ ๋ฆฌ์ฆ
- ๋ณต์ก๋, Big O
์๋ฃ๊ตฌ์กฐ
- ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ค์ํ ๊ตฌ์กฐ
- ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์ ๋ฆฝํ๊ธฐ ์ํด ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ณ๋ก ๋ค์ํ ์๋ฃํ์ด ๋ฐ์
- ๊ทธ ์ค ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ํํ๋ก
๋ฐฐ์ด
์ด ๋ฑ์ฅํ์๊ณ , ํ์ด์ฌ์์๋ ๋ฆฌ์คํธ์ ํํ์ ํตํด ๋ฐฐ์ด์ ๊ตฌํ
[์๋ฃ๊ตฌ์กฐ] ๋ฆฌ์คํธ(in python)
- ํ์ด์ฌ์์์ ๋ฆฌ์คํธ๋ ๋ฐฐ์ด๊ณผ ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ํน์ง์ ๋ชจ๋ ๊ฐ๊ณ ์์
- ์ผ๋ฐ์ ์ธ ์๋ฃ๊ตฌ์กฐ์ ๋ฐฐ์ด : ์ธ๋ฑ์ค๋ฅผ ํตํด ๋ ธ๋์ ์ ๊ทผ ๊ฐ๋ฅ
- ์ฐ๊ฒฐ๋ฆฌ์คํธ : ์ธ๋ฑ์ค์ ํฌ๊ธฐ๋ฅผ ์์ ๋กญ๊ฒ ํ์ฅ ๊ฐ๋ฅ, ์๋ก ๋ค๋ฅธ ์๋ฃํ์ ๊ฐ์ง ์ ์์
์๊ณ ๋ฆฌ์ฆ
- ์ปดํจํฐ์ ๋ด๋ฆฌ๋ ๋ช ๋ น์ ์ ์ฐจ
- ์ฒ๋ฆฌ์ ๋์์ด ๋๋ ๊ฒ์
์ ๋ ฅ๊ฐ
๋ฐ์ดํฐ - ๋ฐ์ดํฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ํ ์ฌ์ฉ(๋ณ์, ํจ์, ํด๋์ค ๋ฑ์ ๊ฐ์ฒด๋ก ์ ์ฅ)
๋ณต์ก๋
- ๊ณต๊ฐ ๋ณต์ก๋ : ์ผ๋ง๋ ๋ง์ ์ ์ฅ๊ณต๊ฐ์ด ํ์ํ์ง
- ์๊ฐ ๋ณต์ก๋ : ์ผ๋ง๋ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋์ง
- ์ข์ ์๊ณ ๋ฆฌ์ฆ : ์ ์ฅ ๊ณต๊ฐ์ ์ ๊ฒ ์ฐ๋ ์คํ ์๊ฐ์ ์งง์(์๋๊ฐ ๋น ๋ฅธ) ์๊ณ ๋ฆฌ์ฆ
- ๊ณต๊ฐ ๋ณต์ก๋์ ์๊ฐ ๋ณต์ก๋๋ ๋ฐ๋น๋กํ๋ฉฐ, ์ต๊ทผ์ ํ๋์จ์ด์ ๋ฐ๋ฌ๋ก ๊ณต๊ฐ ๋ณต์ก๋๋ณด๋จ ์๊ฐ ๋ณต์ก๋๋ฅผ ์ฐ์ ์ผ๋ก ์ฝ๋ ์์ฑ
[๋ณต์ก๋] ์๊ฐ ๋ณต์ก๋(Big O)
Big O
- ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ํํํ๊ธฐ ์ํ ํ๊ธฐ๋ฒ
- Big O ํ๊ธฐ๋ฒ๋ง์ผ๋ก ์๊ณ ๋ฆฌ์ฆ ์ฑ๋ฅ์ ์์ธกํ ์๋ ์์ผ๋ ์ฑ๋ฅ์ ๋ํ ์ ๋ณด๋ฅผ ์ง๊ด์ ์ผ๋ก ์ดํดํ ์ ์์
๊ฐ๋จํ ์๊ฐ๋ณต์ก๋ ์์
arr = [1, 2, 3, 4, 5]
# O(1)
def O1(arr):
print(arr[0])
# O(logN) -> ์ด์คํ์
def Ologn(arr):
low = 0
high = len(arr) - 1
target = int(input())
if target < arr[low] or target > arr[high]:
return '๊ฐ์ด ๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ์ต๋๋ค.'
else:
while True:
mid = (low + high) // 2
if target < arr[mid]:
high = mid - 1
elif target > arr[mid]:
low = mid + 1
else:
return mid
# O(N)
def ON(arr):
for value in arr:
print(value)
# O(N^2) -> ์ด์ค ๋ฐ๋ณต๋ฌธ
def ON2(arr):
for value1 in arr:
for value2 in arr:
print(value1 * value2)
์๊ฐ ๋ณต์ก๋๋ฅผ ๋๋ฌด ๋ณต์กํ๊ฒ ์๊ฐํ์ง๋ง๊ณ ์ง๊ด์ ์ผ๋ก ์
๋ ฅ๊ฐ์ด ๋ค์ด๊ฐ์ ๋ ์๊ณ ๋ฆฌ์ฆ ๋ด์์ ์๋ฃ๊ฐ ์ด๋ป๊ฒ ๋ค๋ค์ง๋์ง ์๊ฐํด๋ณด๋ฉด ํธํ๋ค!
๋ํ, ์๊ฐ๋ณต์ก๋๋ฅผ ํํํ ๋๋ ๋ณดํต ์ต์
์ ๊ฒฝ์ฐ๋ฅผ ๊ฐ์ ํ ์๊ฐ ๋ณต์ก๋๋ฅผ ๋ํ๋ธ๋ค.(๊ทธ๋ ๊ฒ ํด์ผ ๋๋ถ๋ถ์ ์ํฉ์ ๋์ฒ๊ฐ ๊ฐ๋ฅํ๋)
'๐ฟ Data > ๋ถํธ์บ ํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] 97. ์ฌ๊ท(Recursion) (0) | 2022.04.05 |
---|---|
[TIL] 96. ์ถ์ ์๋ฃํ(Abstract Data Type ; ADT) (0) | 2022.04.04 |
[TIL] 94. python OOP (0) | 2022.03.30 |
[TIL] 93. python ๋ฌธ์ ํด๊ฒฐ (0) | 2022.03.29 |
[TIL] 92. python ๊ธฐ๋ณธ (0) | 2022.03.28 |