์๋ฃ๊ตฌ์กฐ๐ - python ์ ๋ ฌ(sort), ํ์(search)
python ๋ฆฌ์คํธ์ ์ ๋ ฌ
sorted()
- ๋ด์ฅ ํจ์(built-in function)
- ์ ๋ ฌ๋ ์๋ก์ด ๋ฆฌ์คํธ๋ฅผ ์ป์ด๋
.sort()
- ๋ฆฌ์คํธ์ ๋ฉ์๋(method)
- ํด๋น ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฌํจ
L = [3, 8, 2, 7]
L2 = sorted(L)
#L2 = [2, 3, 7, 8]
#L = [3, 8, 2, 7]
L.sort()
#L =[2, 3, 7, 8]
์ ๋ ฌ์ ์์๋ฅผ ๋ฐ๋๋ก
reverse=True
- L2 = sorted(L, reverse = True)
- L.sort(reverse = True)
๋ฌธ์์ด๋ก ์ด๋ฃจ์ด์ง ๋ฆฌ์คํธ ์ ๋ ฌ
- ์ ๋ ฌ ์์๋ ์ฌ์ ์์(์ํ๋ฒณ ์์)๋ฅผ ๋ฐ๋ฅธ๋ค.
- Q. ๋ฌธ์์ด ๊ธธ์ด ์์๋ก ์ ๋ ฌํ๋ ค๋ฉด?
-> ์ ๋ ฌ์ ์ด์ฉํ๋ ํค(key)๋ฅผ ์ง์
L = ['abcd', 'xyz', 'spamm']
sorted(L, key = lambda x: len(x))
>>> ['xyz', 'abcd', 'spamm']
์ ๋ ฌ - ํค๋ฅผ ์ง์ ํ๋ ๋ ๋ค๋ฅธ ์
L=[{'name':'John', 'score': 83},
{'name':'Paul', 'score': 92}]
L.sort(key=lambda x:x['name'])
# -> ๋ ์ฝ๋๋ค์ ์ด๋ฆ ์์๋๋ก ์ ๋ ฌ
L.sort(key=lambda x:x['score'], reverse=True)
# -> ๋ ์ฝ๋๋ค์ ์ ์ ๋์ ์์ผ๋ก ์ ๋ ฌ
ํ์ ์๊ณ ๋ฆฌ์ฆ1 - ์ ํ ํ์(Linear Search)
- ๋ฆฌ์คํธ์ ๊ธธ์ด์ ๋น๋กํ๋ ์๊ฐ ์์
O(n)
- ์ต์ ์ ๊ฒฝ์ฐ: ๋ชจ๋ ์์๋ฅผ ๋ค ๋น๊ตํด ๋ณด์์ผ ํ๋ค.
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
ํ์ ์๊ณ ๋ฆฌ์ฆ2 - ์ด์ง ํ์(Binary Search)
- ํ์ํ๋ ค๋ ๋ฆฌ์คํธ๊ฐ ์ด๋ฏธ ์ ๋ ฌ๋์ด ์๋ ๊ฒฝ์ฐ์๋ง ์ ์ฉ ๊ฐ๋ฅ
- ํฌ๊ธฐ ์์ผ๋ก ์ ๋ ฌ๋์ด ์๋ค๋ ์ฑ์ง ์ด์ฉ
- ํ๋ฒ ๋น๊ต๊ฐ ์ผ์ด๋ ๋๋ง๋ค ๋ฆฌ์คํธ ๋ฐ์ฉ ์ค์(divide & conquer)
-O(logn)
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(์๋ฃ๊ตฌ์กฐ๐ - python ์ ๋ ฌ(sort), ํ์(search)), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@annie1004619/์๋ฃ๊ตฌ์กฐ-python-์ ๋ ฌsort-ํ์search์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค