클래스 솔루션 : 데프 merge_sort (자기, alist) : N- = LEN (alist) # 배열의 길이를 계산 IF N - <= 1. : 리턴 alist MID = N-2 // left_arr = self.merge_sort (alist [: MID]) #의 배열을 분할하는 좌측 right_arr = self.merge_sort (alist를 [MID :]) # 오른쪽 분할 어레이 left_point, right_point = 0, 0 결과 = [] # 获取最终数组 동안 left_point <LEN (left_arr) 및 right_point < LEN (right_arr) 경우 left_arr [left_point] < right_arr [right_point] result.append (left_arr [left_point]) left_point + = 1 다른 사람 : result.append (right_arr [right_point]) right_point + = 1 결과 + = left_arr [left_point을 :] 결과 + = : right_arr [right_point] 리턴 결과 경우 __name__ == ' __main__ ' : alist = [1, 8, 6, 2, 5, 4, 8, 3, 9 ] S = 솔루션 () 입술 = s.merge_sort (alist) 인쇄 (해상도)
목록을 정렬하는 정렬 알고리즘 병합
추천
출처www.cnblogs.com/chenshifang/p/12071288.html
추천
행