가수면
퀵 정렬 알고리즘 본문
기준점(pivot 이라고 부름)을 정해서, 기준점보다 작은 데이터는 왼쪽(left), 큰 데이터는 오른쪽(right) 으로 모으는 알고리즘 왼쪽(left), 오른쪽(right)은 재귀용법을 사용해서 왼쪽(left) + 기준점(pivot) + 오른쪽(right) 을 리턴함
def quickSort(data):
if len(data) <= 1:
return data
left, right = list(), list()
pivot = data[0]
for index in range(1, len(data)):
if pivot > data[index]:
left.append(data[index])
else:
right.append(data[index])
return quickSort(left) + [pivot] + quickSort(right)
list comprehension을 적용
def quickSort(data):
if len(data) <= 1:
return data
pivot = data[0]
left = [ item for item in data[1:] if pivot > item ]
right = [ item for item in data[1:] if pivot <= item ]
return quickSort(left) + [pivot] + quickSort(right)
'CS > CS' 카테고리의 다른 글
탐욕 알고리즘 (0) | 2023.11.10 |
---|---|
이진 탐색, 순차 탐색 (0) | 2023.11.10 |
동적 계획법 (0) | 2023.11.09 |
선택 정렬 알고리즘 (0) | 2023.11.09 |
삽입 정렬 알고리즘 (0) | 2023.11.09 |
Comments