Я пытаюсь создать сортировку вставки со связанными списками. Вот что у меня есть:Вставка Сортировка с помощью связанного списка
def insertion_sort(a):
"""
-------------------------------------------------------
Sorts a list using the Insertion Sort algorithm.
Use: insertion_sort(a)
-------------------------------------------------------
Preconditions:
a - linked list of comparable elements (?)
Postconditions:
Contents of a are sorted.
-------------------------------------------------------
"""
unsorted = a._front
a._front = None
while unsorted is not None and unsorted._next is not None:
current = unsorted
unsorted = unsorted._next
if current._value < unsorted._value:
current._next = unsorted._next
unsorted._next = current
unsorted = unsorted._next
else:
find = unsorted
while find._next is not None and current._value > find._next._value:
find = find._next
current._next = find._next
current = find._next
a._front = unsorted
return a
Я считаю, что у меня есть правильная с точки зрения сортировки. Однако, когда я пытаюсь прочитать список в основном модуле, я получаю кучу значений None
.
В этом случае сортировка вставки не, создавая новый список при сортировке. Скорее, он перемещает все отсортированные элементы на «фронт».
Подводя итог, у меня есть две проблемы: я не уверен, что сортировка вставки правильная, и есть проблемы с возвращенным списком a
, так как он содержит значения None
. Заранее спасибо
«a» - это связанный список, переданный из основного модуля. Означает ли это что-либо изменение – user3170251
, если 'a' имеет аналогичную структуру выше, тогда должно быть хорошо, алгоритм работает, поэтому вам просто нужно подогнать вашу структуру к нему. – AChampion