파이썬에서 병합 정렬 알고리즘을 작성했습니다. 그것은 10000 숫자까지 완벽하게 작동하지만 10000 후에 나에게 분할 결함 11을 준다. 무엇이 문제 일까? 그것에 대해 어떤 생각이든병합 정렬 알고리즘 실패
def merge_count(arr):
if len(arr) < 2:
return (arr, 0)
m = int(len(arr)/2)
left, l_counter = merge_count(arr[:m])
right, r_counter = merge_count(arr[m:])
return merge(left, right, l_counter + r_counter)
def merge(left, right, counter):
if len(left) * len(right) == 0:
return (left + right, counter)
if left[len(left) - 1] > right[len(right) - 1]:
val = left.pop(len(left) - 1)
counter += len(right)
else:
val = right.pop(len(right) - 1)
arr, counter = merge(left, right, counter)
return (arr + [val], counter)
코드는 어디에 있습니까? – RaviH
세그먼트 오류? 파이썬에서? 도대체 뭘 한거야? 코드를 보여주세요. – user2357112
내 코드 @ user2357112를 추가했습니다. –