728x90
반응형
분할정복 알고리즘인 퀵 소트에 대해 공부해보았다.
https://www.daleseo.com/sort-quick/
여기에서 상상 이상으로 정리가 잘 되어있다.
기본이 있고, 최적화하는 방법이 있는데 나는 일단 기본부터 외워보기로 했다.
의외로 구현이 간단해서 놀라웠다. 금방 외울 수 있었다.
def qsort(arr):
if len(arr) <= 1:
return arr
l,e,r = [],[],[]
mid = arr[len(arr) // 2]
for i in range(len(arr)):
if mid > arr[i]:
l.append(arr[i])
elif mid < arr[i]:
r.append(arr[i])
else:
e.append(arr[i])
return qsort(l) + e + qsort(r)
print(qsort([4,1,2,6,9,7]))
728x90
반응형
'알고리즘' 카테고리의 다른 글
[알고리즘] 강의 중간 정리 with Java (0) | 2022.04.12 |
---|---|
[트리] 전위순회, 중위순회, 후위순회 (0) | 2022.04.11 |
[프로그래머스] 가장 긴 펠린드롬 (0) | 2021.11.08 |
[HackerRank] Breaking the Records (PYTHON) (0) | 2021.11.01 |
[HackerRank] Divisible Sum Pairs (PYTHON) (0) | 2021.11.01 |