Это может быть самая странная проблема, которую я когда-либо видел, когда я устанавливаю объект с индексом 3 (четвертый объект) равным 5, у алгоритма сортировки пузырьков возникают проблемы, но когда я устанавливаю его на 12, проблемауходит, хотя и 12, и 5 являются более низкими числами, чем оба числа в индексах 2 и 4 (числа до и после 5/12). Вот код и вывод:
array_to_sort = [10, 5, 13, 5, 42]
should_stop = False
print(array_to_sort)
while should_stop == False:
should_stop = True
index = 1
for back_number in array_to_sort:
print(array_to_sort)
front_number = array_to_sort[index]
if back_number > front_number:
array_to_sort.remove(back_number)
array_to_sort.remove(front_number)
array_to_sort.insert(index - 1, front_number)
array_to_sort.insert(index, back_number)
should_stop = False
if index + 1 < len(array_to_sort):
index += 1
(очевидно, не весь вывод):
[10, 5, 13, 5, 42]
[10, 5, 13, 5, 42]
[5,10, 13, 5, 42]
[5, 10, 13, 5, 42]
[10, 5, 5, 13, 42]
[10, 5, 5, 13, 42]
Однако, в конце концов, он полностью сортируется
Затем с тем же кодом, но если я установлю массив следующим образом:
array_to_sort = [10, 5, 13, 12, 42]
Выходная информация становится ожидаемой:
[10, 5, 13, 12, 42]
[10, 5, 13, 12, 42]
[5, 10, 13, 12, 42]
[5, 10, 13, 12, 42]
[5, 10, 12, 13, 42]
[5, 10, 12, 13, 42]
PS: я знаю, что это определенно не лучший способ сделать пузырьковую сортировку, я только начинаюс питоном.