Виклик
Давши список цілих чисел, покажіть, як буде здійснюватися сортування гравітації.
Гравітаційний сорт
У гравітаційному сортуванні уявіть числа як рядки зірочок. Тоді все падає, і нові ряди будуть явно відсортовані. Розглянемо приклад:
[2, 7, 4, 6]
:
**
*******
****
******
-------
**
****
*******
******
-------
** | 2
**** | 4
****** | 6
******* | 7
Зауважте, що це майже просто паралельний сорт міхура.
Точні характеристики
На кожній ітерації, починаючи з верхнього ряду, візьміть кожну зірочку з рядка, у якого немає зірочки під ним, і перемістіть її вниз по рядку. Продовжуйте робити це, поки список не буде відсортований.
Вхідні дані
Введенням буде список суворопозитивних цілих чисел.
Вихід
Для виходу необхідно виводити кожен крок. Ви можете вибрати будь-які два символи ASCII, що друкуються без пробілів, один - "зірочки", а один - "тире". Рядки зірочок повинні бути відокремлені стандартним новим рядком якогось типу (наприклад, \n
або \r\f
). Ряд тирею повинен бути не менше ширини самого широкого ряду (інакше зірочки зійдуть занадто далеко вниз!). Ряд тире в самому низу необов’язковий. У кінці дозволено новий рядок. Додаткові пробіли в кожному рядку дозволені.
Випробування
Вхід буде представлений у вигляді списку, тоді вихід буде вказано безпосередньо нижче. Тестові приклади розділені подвійним новим рядком.
[4, 3, 2, 1]
****
***
**
*
----
***
** *
* *
**
----
**
* *
** *
***
----
*
**
***
****
[6, 4, 2, 5, 3, 1]
******
****
**
*****
***
*
------
****
** **
****
***
* **
***
------
**
****
*** **
* *
***
*****
------
**
***
* *
*** **
****
*****
------
**
*
***
****
******
*****
------
*
**
***
****
*****
******
[8, 4, 2, 1]
********
****
**
*
--------
****
** ****
* **
**
--------
**
* **
** ****
****
--------
*
**
****
********
Будь ласка, не соромтесь виправляти мої тестові справи, якщо вони помиляються, я зробив їх вручну :)
Примітка: Не виводити відсортований список наприкінці. :)
Оцінка балів
Усі ваші програми будуть написані один на одного. Ви не хочете, щоб шматки вашої програми падали, тому переконайтеся, що у вас найкоротший код!