내장 함수(built-in function)
정렬된 새로운 리스트를 얻어냄 (반환함)
해당 리스트는 달라지지 않는다
L2 = sorted(L, reverse=True)
리스트의 메서드(method) - 리스트 자료형이 제공하는 기능이다
해당 리스트를 정렬함
L.sort(reverse=True)
key는 정렬 함수의 파라미터로 key에 주어진 함수를 기준으로 삼아 정렬한다
문자열 길이로 정렬하고 싶은 경우
sorted(L, key=lambda x: len(x))
sorted(L, key=len) # 강의에 나오지는 않았으나.. 가능한 방법
또 다른 예시(각 원소가 딕셔너리일 때)
# 이름을 오름차순으로 정렬
L = [{'name':'John', 'score':83}, {'name':'Paul', 'score':34}]
L.sort(key=lambda x: x['name'])
def linear_search(L, x):
i = 0
# 탐색 (i가 L 안을 벗어나지 않도록, L[i] 값이 같지 않으면 i를 증가
# 즉, i가 찾는 원소와 같다면 반복문이 멈추게 된다
while i < len(L) and L[i] != x:
i += 1
# i가 len(L)보다 작으면 찾는 값이 리스트 안에 있는 것
if i < len(L):
return i
else: # i가 len(L)보다 크면 찾는 값이 리스트 안에 없는 것
return -1
def binary_search(L, x):
lower = 0
upper = len(L) - 1
idx = -1
while lower <= upper:
middle = (lower + upper)//2
if L[middle] == x:
idx = middle
break
elif L[middle] < x:
lower = middle + 1
else:
upper = middle - 1
return idx