가수면

퀵 정렬 알고리즘 본문

CS/CS

퀵 정렬 알고리즘

니비앙 2023. 11. 9. 20:08

기준점(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