Пузырьковая сортировка в двусвязном списке не работаетPython

Программы на Python
Ответить
Anonymous
 Пузырьковая сортировка в двусвязном списке не работает

Сообщение Anonymous »

Недавно я занимался DSA на Python, на этот раз попробовал алгоритм пузырьковой сортировки в двусвязном списке.
К сожалению, этот метод не дает должного результата.
Пожалуйста, поправьте меня, скажите, где я ошибаюсь (я много пробовал, но так и не понял). Пожалуйста, объясните и предложите необходимые изменения.

Код: Выделить всё

class Node:
def __init__(self, value):
self.value = value
self.next = None
self.prev = None

class DoublyLinkedList:
def __init__(self):
self.head = None
self.tail = None
self.next = None
self.prev = None
self.count = 0

Код: Выделить всё

    def bubble_sort(self):
if self.head is None:
return f"Linked list is empty!"
elif self.head.next is None:
return self.head
else:
left = self.head
right = self.head.next
while True:
flag = 'sorted'
while True:
if right is None:
break
if left.value > right.value:
flag = 'unsorted'
if (left == self.head) and (right == self.tail): #only two nodes
self.tail = left
self.head = right
elif left == self.head:                    #edge case of left
self.head = right
elif right == self.tail:                   #edge case of right
self.tail = left
temp_right = right.next
temp_left = left.prev
left.next = temp_right
left.prev = right
right.next = left
right.prev = temp_left
right = left.next
else:
left = left.next
right = right.next
left = self.head
right = self.head.next
if flag == 'sorted':
return self
Пожалуйста, помогите!

Подробнее здесь: https://stackoverflow.com/questions/792 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»