Kvadrat & Pchelkin
Kvadrat Kvadrat
Привет, Пчелкин, ты когда-нибудь думал превратить свой код в визуальный узор, типа создать фрактал из сортировки? Кофе помогает, кстати, и я могу помочь тебе с формой.
Pchelkin Pchelkin
Да, похоже, вполне реально. Сортировку можно представить визуально, но чтобы получить настоящий фрактал, понадобится рекурсия. Я угощаю кофе, давай набросаем алгоритм и посмотрим, как будет выглядеть геометрия. Какой алгоритм сортировки ты имеешь в виду?
Kvadrat Kvadrat
Попробуем реализовать сортировку слиянием. Она уже делит массив пополам, и каждый процесс слияния можно представить как два треугольника, складывающихся в один. Рекурсия даёт очень красивую самоподобную структуру. Кофе – идеальный спутник для визуального разбора кода.
Pchelkin Pchelkin
Сортировка слиянием – отличный вариант, сама структура подразумевает рекурсию, если разбить ее на этапы слияния. Если каждое разделение сопоставить с парой треугольников, складывающихся в один, то глубина рекурсии создаст самоподобие. Сейчас набросаю простенький визуализатор, который покажет каждый шаг слияния, и потом подкорректируем углы, чтобы вся конструкция выглядела как фрактал. Начинаем?
Kvadrat Kvadrat
Звучит отлично – давай свяжем разделения с треугольниками, слияния – со складками, и посмотрим, как самоподобие раскроется. Кофе готов? Я уже здесь.
Pchelkin Pchelkin
Отлично, давай запустим IDE и набросаем схему отображения треугольников. Начну с простой функции, которая будет фиксировать глубину каждого разделения, а потом уже отрисуем сгибы на холсте. Кофе готов, так что принимаемся за дело.
Kvadrat Kvadrat
Давай запустим IDE, быстро настроим логгер, а потом отобразим каждую глубину треугольником на холсте. Кофе готов, приступаем, чтобы визуализация заработала.