병합 정렬

이하연·2021년 8월 12일
0

손코딩

목록 보기
2/7

코드

def merge_sort(list):
    if len(list) <= 1:
        return list
    mid = len(list) // 2
    leftList = merge_sort(list[:mid])
    rightList = merge_sort(list[mid:])
    return merge(leftList, rightList)

def merge(left, right):
    result = []
    while len(left) > 0 or len(right) > 0:
        if len(left) > 0 and len(right) > 0:
            if left[0] <= right[0]:
                result.append(left[0])
                left.pop(0)
            else:
                result.append(right[0])
                right.pop(0)
        elif len(left) > 0:
            result.append(left[0])
            left.pop(0)
        elif len(right) > 0:
            result.append(right[0])
            right.pop(0)
    return result

손코딩

0개의 댓글

관련 채용 정보