array = [5,7,9,0,3,1,6,2,4,8]
def quick(array):
if(len(array) <= 1):
return array
pivot = array[0]
tail = array[1:]
left_side = [x for x in tail if x <= pivot] # 분할된 왼쪽 부분
right_side = [x for x in tail if x > pivot] # 분할된 오른쪽 부분
#print(pivot)
#print(left_side)
#print(right_side)
# 분할 이후 왼쪽 부분과 오른쪽 부분에서 각각 정렬을 수행하고, 전체 리스트를 반환
return quick(left_side) + [pivot] + quick(right_side)
print(quick(array))
반응형
'데이터사이언스' 카테고리의 다른 글
파이썬 프로그래머스 네트워크(DFS 문제 풀이) (1) | 2022.03.20 |
---|---|
파이썬 list 출력하기(파이썬스럽게) (0) | 2022.03.06 |
파이썬 2개 리스트 각각 더하기 (0) | 2022.03.03 |
파이썬 입력받기 (0) | 2022.03.03 |
파이썬 문자열 압축(feat. 프로그래머스 문자열 압축 문제) (0) | 2020.05.29 |