Не знаю, где я ошибаюсь в моей реализации сортировки слияния в python.python merge sort issue
import sys
sequence = [6, 5, 4, 3, 2, 1]
def merge_sort(A, first, last):
if first < last:
middle = (first + last)/2
merge_sort(A, first, middle)
merge_sort(A, middle+1, last)
merge(A, first, middle, last)
def merge(A, first, middle, last):
L = A[first:middle]
R = A[middle:last]
L.append(sys.maxint)
R.append(sys.maxint)
i = 0
j = 0
for k in xrange(first, last):
if L[i] <= R[j]:
A[k] = L[i]
i = i + 1
else:
A[k] = R[j]
j = j + 1
merge_sort(sequence, 0, len(sequence))
print sequence
Я был бы очень признателен, если бы кто-нибудь мог указать, что нарушает мою текущую реализацию сортировки слияния.
Какая у вас проблема? – michaelrccurtis
совет: 'first
Токовый выход для указанной последовательности [3, 1, 2, 5, 4, 6]. – nuce