병합정렬(Merge sort)


병합정렬(Merge sort)

https://medium.com/@bill.shantang/8-classical-sorting-algorithms-d048eec3fdab 병합정렬 1. 리스트 길이가 0 또는 1이면 이미 정렬된 것입니다. 그렇지 않으면: 2. 정렬되지 않은 리스트를 약 절반 크기의 두 개의 하위 목록으로 나눕니다. 3. 병합 정렬을 다시 적용하여 각 하위 목록을 재귀적으로 정렬합니다. 4. 두 하위 목록을 다시 하나의 정렬된 목록으로 병합합니다. https://medium.com/@bill.shantang/8-classical-sorting-algorithms-d048eec3fdab Python def Msort(lt,rt): if lt < rt: mid = (lt + rt)//2 Msort(lt, mid) Msort(mid+1, rt) idx1 = lt idx2 = mid + 1 tmp = [] while idx1<=mid and idx2<=rt: if arr[idx1] < arr[idx2]: ...



원문링크 : 병합정렬(Merge sort)