퀵정렬

Gino·2022년 5월 2일
1

정의

  • pivot(중심축)을 기준으로 작은 숫자는 왼쪽, 큰 숫자는 오른쪽으로 정렬을 반복하는 정렬

코드로 확인

def quickSort(array):
    '''
    퀵정렬을 통해 오름차순으로 정렬된 array를반환하는 함수를 작성하세요.
    '''
    # 기저조건 처리 
    if len(array) <= 1 : 
        return array 
    
    pivot = array[0] # 피봇은 0번 인덱스
    left = getSmall(array[1:], pivot) # pivot 보다 작거나 같으면 왼쪽
    right = getLarge(array[1:], pivot) # pivot 보다 크면 오른쪽
    
    return quickSort(left) + [pivot] + quickSort(right)
    
def getSmall(array, pivot):
    data = []
    
    for i in array: 
        if i <= pivot:
            data.append(i)
    return data
    
def getLarge(array, pivot):
    data = []
    
    for i in array:
        if i > pivot:
            data.append(i)
    return data

def main():
    line = [int(x) for x in input("정렬할 수를 입력하세요 (예시:10 2 3 4 5 6 9 7 8 1): ").split()]

    print('정렬 결과:', *quickSort(line))

if __name__ == "__main__":
    main()
정렬할 수를 입력하세요 (예시:10 2 3 4 5 6 9 7 8 1):  10 2 3 4 5 6 9 7 8 1


정렬 결과: 1 2 3 4 5 6 7 8 9 10
profile
나무를 심는 사람

0개의 댓글