0
Я разрабатываю сортировку слияния, которая может использовать только итератор (это утверждение проблемы). Выход моей функции - это генератор.Объединить сортировку с помощью Итераторы
Я пишу объединить функции сортировки:
def merge_sort(data):
data1, data2 = itertools.tee(data)
counter = 0
for i in data1:
counter += 1
if counter < 2:
return data2
middle = int(counter/2)
y = itertools.islice(data2, 0, middle)
z = itertools.islice(data2, middle, counter)
sorted_y = merge_sort(y)
sorted_z = merge_sort(z)
return heapq.merge(sorted_y, sorted_z)
Я проверить свою функцию:
def main():
unsorted_list = [10, 3, 5, 0, 1, -5, 6, 2]
result = merge_sort(iter(unsorted_list))
for i in result:
print(i)
Но это не работает. Я получаю только номер 10. Где я совершил ошибку?