ํฐ์คํ ๋ฆฌ ๋ทฐ
์ ๋ ฌ(sort) ์ด๋?
๋ณต์์ ์์๋ก ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์ ํด์ง ๊ธฐ์ค์ ๋ฐ๋ผ ์๋ก ๋์ด๋๋ ์์ ์ด๋ค. ํ์ด์ฌ์ ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํ๋ฉด ์ง์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ ํ์๊ฐ ์๋ค.
- ํ์ด์ฌ ๋ด์ฅ ํจ์ sorted()
- ๋ฆฌ์คํธ์ ์ธ ์ ์๋ ๋ฉ์๋ .sort()
์ ๋ ฌ์ ์์๋ฅผ ๋ฐ๋๋กํ๊ธธ ์ํ ๋ ์ธ์๋ก reverse = True๋ฅผ ๋ฃ์ด์ค๋ค.
๋ฌธ์์ด๋ก ์ด๋ฃจ์ด์ง ๋ฆฌ์คํธ์ ๊ฒฝ์ฐ ์ ๋ ฌ ์์๋ ์ฌ์ ์์(์ํ๋ฒณ ์์)๋ฅผ ๋ฐ๋ฅธ๋ค. ๋ฌธ์์ด ๊ธธ์ด๊ฐ ๊ธด ๊ฒ์ด๋ผ๊ณ ํด์ ๋ ํฐ ๊ฒ์ด ์๋๋ค. ๋ฌธ์์ด ๊ธธ์ด ์์๋ก ์ ๋ ฌํ๊ณ ์ถ๋ค๋ฉด ์ ๋ ฌ์ ์ด์ฉํ๋ ํค(key)๋ฅผ ์ง์ ํด์ค๋ค.
L = ['abcd', 'xyz', 'spam']
# ๋ฌธ์์ด ๊ธธ์ด๋ก ์ ๋ ฌ
sorted(L, key=lambda x: len(x))
L = [ {'name': 'john', 'score': 88},
{'name': 'paul', 'score': 92} ]
# ๋ ์ฝ๋๋ค์ ์ด๋ฆ ์์๋๋ก ์ ๋ ฌ
L.sort(key = lambda x : x['name'])
# ๋ ์ฝ๋๋ค์ ์ ์ ๋์ ์์ผ๋ก ์ ๋ ฌ
L.sort(key=lambda x : x['score'], reverse=True)
ํ์(search) ์ด๋?
๋ณต์์ ์์๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ์์ ํน์ ์์๋ฅผ ์ฐพ์๋ด๋ ์์ ์ผ๋ก ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ง๋ง ์์ฃผ ๊ธฐ๋ณธ์ ์ธ ๋ ๊ฐ์ง๊ฐ ์๋ค.
- ์ ํ ํ์ (Linear Search) or ์์ฐจ ํ์ (sequential search) : ์์ฐจ์ ์ผ๋ก ๋ชจ๋ ์์๋ค์ ํ์ํ์ฌ ์ํ๋ ๊ฐ์ ์ฐพ์๋ด๋ ๋ฐฉ๋ฒ, ๋ฐฐ์ด์ ๊ธธ์ด์ ๋น๋กํ๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ฏ๋ก ์ต์ ์ ๊ฒฝ์ฐ์๋ ๋ฐฐ์ด์ ์๋ ๋ชจ๋ ์์๋ฅผ ๋ค ๊ฒ์ฌํด์ผํ ์ ์๋ค. O(n)
- ์ด์งํ์(binary search) : ํ์ํ๋ ค๋ ๋ฐฐ์ด์ด ์ด๋ฏธ ์ ๋ ฌ๋์ด์๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ, ํฌ๊ธฐ ์์ผ๋ก ์ ๋ ฌ๋์ด์๋ค๋ ์ฑ์ง์ ์ด์ฉํด ํ ๋ฒ์ ์ ๋ฐ์ฉ ๋ฐฐ์ด์ ์๋ผ์ ๋น๊ตํด์ ์ฐพ๋๋ค. ํ ๋ฒ ๋น๊ต๊ฐ ์ผ์ด๋ ๋๋ง๋ค ๋ฆฌ์คํธ๋ฅผ ๋ฐ์ฉ ์ค์ธ๋ค. O(logN)
# ์ ํ ํ์
def linear_search(L, x):
i = 0
while i < len(L) and L[i] != x:
i += 1
if i < len(L):
return i
else:
return -1
# ์ด์ง ํ์
def binary_search(L, x):
answer = -1
lower = 0
upper = len(L) -1
while lower<=upper:
middle = (lower+upper)//2
if L[middle] == x:
answer = middle
break
elif L[middle] < x:
lower = middle + 1
middle = (lower + upper)//2
else:
upper = middle -1
middle = (lower + upper)//2
return answer
'(๊ตฌ)์๋ฃ๊ตฌ์กฐ&์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ์ ํ ์ ๋ ฌ (Selection Sort) (0) | 2020.06.16 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํฌํธ๋ฆฌ (0) | 2020.06.15 |
์ ํ ๋ฐฐ์ด (Linear Arrays) (0) | 2020.06.12 |
์๋ฃ๊ตฌ์กฐ (data structures) & ์๊ณ ๋ฆฌ์ฆ (algorithm) (0) | 2020.06.12 |
[ํ๋ก๊ทธ๋๋จธ์ค][์๋ฐ] level 1. ์ฝ์์ ํฉ (0) | 2019.09.01 |
- Total
- Today
- Yesterday
- typeAliases
- ์ดํด๋ฆฝ์ค ์ค์น
- mysql์ค์น
- ๊ฐ๋ฐํ๊ฒฝ๊ตฌ์ถ
- Java
- ๊ฒ์ํ๋ง๋ค๊ธฐ
- ๊ฒ์ํ ์ญ์
- ์๊ณ ๋ฆฌ์ฆ
- java ํ๊ฒฝ๋ณ์
- java jdk ์ค์น
- ๊ฒ์๋ฌผ์กฐํ
- ์คํ๋ง๋ถํธ ์๋์์ฑ
- ์จ๋ฆฌ์์ค
- ์ดํด๋ฆฝ์ค ํ๊ธ ์ธ์ฝ๋ฉ
- ์๋ฃ๊ตฌ์กฐ
- ๊ฐ๋ฐ
- ๊ฒ์ํ ์กฐํ
- ๊ฒ์๋ฌผ ์ญ์
- ๋ณ๋ช ์ฒ๋ฆฌ
- ์ ์ฒด๊ฒ์๋ฌผ ์กฐํ
- Algorithm
- ๋ถํธ ์๋์์ฑ
- tomcat์ค์น
- ์๋ฐ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |