Many thanks to Tristan Morris for creating a beautiful illustrated hardcover print edition of the site |
|||||||||||||
(Sorry, this page has not been translated by the translator you selected.) Наступила первая неделя лета и принесла приятные теплые ветра, поэтому теперь большинство монахов Храма принимали пищу и медитировали на открытом воздухе. Но художницу Йывень, которая любила открытые пространства, нигде не было видно на территории Храма. Её соседка по келье, монахиня Хвайда, решила разобраться. В конце концов, она нашла Йывень, которая молча вязала в одном из свободных помещений Храма, как будто прилежный паук в центре огромной паутины из тонкой серой пряжи. Сотни нитей тянулись из мотков, разбросанных по всей комнате. Казалось, что Йывень вяжет шарф из всех нитей сразу. “Зима была шесть месяцев назад”, - сказала Хвайда, - “Объяснись!” Йывень нежно перебирала нити рукой: “Каждый оттенок серого отображает разные целые числа в порядке их значения. Для нуля я выбрала цвет с именем ‘Темнота до начала времен’. Тридцать один - это ‘Угольная пыль’, шестьдесят три - ‘Собирающаяся грозовая туча’ и так далее, всё светлее и светлее до двухсот пятидесяти пяти: ‘Белое божественное облако’ “. “Впечатляющая палитра для такого скромного сезонного аксессуара”, - сказала Хвайда. Йывень подняла шарф со своих колен: “Это не просто предмет одежды. Рисунок на нём показывает меняющееся состояние массива чисел в процессе сортировки. Каждый ряд представляет собой одно такое изменение, а петли в ряду изображают числа. Видишь, в первом ряду цвета в полном беспорядке, но с каждым рядом они становятся всё более упорядоченными, так как алгоритм сортировки говорит мне, какие нити поменять. Цвет нитей последнего ряда будет плавно меняться от чёрного к белому”. “Также я тут вижу одну тонкую сверкающую золотую нить и ещё одну рубиновую”, - сказала Хвайда. Йывень указала ногтём на часть шарфа: “Если на текущем шаге алгоритм сравнивает два элемента, то я завязываю золотые узелки вокруг соответствующих нитей. Если он выбирает опорную точку, то я украшаю эту нить рубином. Таким образом, шарф будет иметь столько строк, сколько операций требуется алгоритму сортировки, и эстетика алгоритма будет видна”. “Ты всё ещё ищешь красоту в коде?” - сказала Хвайда. “Тысяча извинений, Хвайда, но это не единственная моя цель”, - сказала Йывень. - “Знакома ли ты с монахом-послушником, недавно присоединившимся к моей команде? Его первой задачей было убедиться, что результирующее множество отсортировано перед отображением. Но он не знал о встроенной утилите сортировки, поэтому реализовал свою собственную”. “Самая неудачная трата времени”, - сказала Хвайда. “Твои слова весьма кстати”, - сказал Йывень. - “Он выбрал Bubblesort, как выяснилось в дальнейшем, когда приложение получило очень большое множество и потребовалось несколько минут, чтобы отобразить страницу”. “Похоже, что ты используешь Bubblesort в качестве основы для рисунка”, - сказал Хвайда, рассматривая готовые ряды. “Верно!”, - сказала Йывень. - “Я уже связала шарф с помощью встроенного алгоритма сортировки Timsort. Он около четверти метра в ширину и два метра в длину, и я буду с удовольствием носить его. Этот же шарф - подарок для монаха. У него будет такая же ширина, но он будет несколько более... нескладный”. “Он будет шестьдесят четыре метра в длину!” - воскликнула Хвайда. “Теперь ты понимаешь, почему я должна начать в июне”, - сказала Йывень. - “Как ты заметила, зима была всего шесть месяцев назад”. “А что будет, если монах откажется носить твой щедрый подарок?” - спросила Хвайда. “То же самое, что будет, если он не исправит своё невежество”, - сказала Йывень. Она свернула шарф в тонкую трубку и дернула за концы, показав свою силу. - “Шестьдесят четыре метра делают это неуклюжим шарфом, но отличной петлёй”. Перевод Sergey Malenkov. Отрывок из The Codeless Code, созданная Qi (qi@thecodelesscode.com). При условии, в соответствии с условиями Creative Commons Attribution-NonCommercial 3.0 Unported License. *Inspired in part by the excellent "weave" sorting visualizations done by Aldo Cortesi. And thanks to Sweet Tea Dorminy for pointing out the typo! |