1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | def Mergesort(arr): result = [] if len(arr) <= 1: return arr size = len(arr) / 2 left = Mergesort(arr[:size]) right = Mergesort(arr[size:]) r_idx = 0 l_idx = 0 while r_idx < len(right) and l_idx < len(left): if right[r_idx] < left[l_idx]: result.append(right[r_idx]) r_idx += 1 else: result.append(left[l_idx]) l_idx += 1 for i in right[r_idx:]: result.append(i) for i in left[l_idx:]: result.append(i) return result if __name__ == '__main__': arr = [2, 1, 4, 5, 10] print (Mergesort(arr)) | cs |
분할 정렬 그림만 보고 작성했다
내 생각을 바로 코드로 만드니까 뭔가 보람차다
어려운 거 하면 힘들겠지만
슬립정렬 ㄱ
: <-- 이게 뭐지
ㅋㅋㅋㅋㅋ 이런 정렬도 있네
@씨알메리 [:5] 처음부터 5까지 [5:] 5부터 끝까지 [5:10] 5부터 10까지
으 머지소트 c로 존나 노가다 했던 거 기억난다..
역시 파이슨이야 깔끔하지
헐 ㅋ
난 파이썬 배웠는데
아 기억났다