Войти Создать аккаунт

Алгоритмы и структуры данных · 7 из 17

Пузырёк шарами

Новенькая в диспетчерской такси упорядочивает машины на табло по расстоянию до клиента так, как учили в школе, — пузырьком: идёт по ряду и меняет местами соседей, стоящих не по порядку, и так проход за проходом. Старший диспетчер хочет показать на большом экране, как это выглядит, обмен за обменом, — и почему на сотне машин так никто не делает.

Что сделать

Отсортируйте список пузырьком и верните каждое его состояние: в начале и после каждого обмена соседей.

Что приходит

  • xs — список чисел; его самого менять нельзя

Что вернуть

Список состояний — копий списка: исходное и после каждого обмена, по порядку.

Допишите функцию puzyrek в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой

Пример

Для [3, 1, 2]: первый проход меняет 3 и 1 — [1, 3, 2], потом 3 и 2 — [1, 2, 3]. Второй проход обменов не делает, и сортировка кончается. Ответ — [[3, 1, 2], [1, 3, 2], [1, 2, 3]].

Тот же пример кодом
Вызов
puzyrek([3, 1, 2])
Вернуть
[[3, 1, 2], [1, 3, 2], [1, 2, 3]]
Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.