Сортировка — это ключевой алгоритм, который должен понимать каждый программист. Я Программист часто интересовался новыми способами отображения сортировки в действии, включая даже Венгерские танцы. Теперь у нас есть еще одна анимация, которую нужно добавить в нашу коллекцию, и она очень и очень хороша.
Карло Заппони — специалист по визуализации данных в лондонском офисе газеты Guardian. Он также страстно любит показывать, как обстоят дела, с максимальной художественной ценностью.
Один из его последних проектов, который мы пропустили, когда он был совсем новым, — показать алгоритмы сортировки информативным и приятным образом.
Основная идея — показать, как элементы перемещаются для достижения порядка сортировки. На диаграммах показано, какие пары элементов меняются местами в процессе сортировки. Под каждой диаграммой находится график, показывающий, насколько неисправен массив. Если вы хотите понять, что происходит, я советую попробовать пример пузырьковой сортировки, щелкнув значок + добавить метод и выбрав его из списка:
Пузырьковая сортировка никогда не является хорошим выбором алгоритма, за исключением случаев, когда ее простота является преимуществом, а здесь, безусловно, так. Вы можете видеть, как сканирование перемещается вверх по замене элементов массива, которые не в порядке, а вы наблюдаете за графиком, показывающим, как не в порядке элементы медленно уменьшаются.
Для более сложной сортировки вам нужна помощь в понимании некоторых символов, потому что не все виды представляют собой простую замену элементов в массиве. Например, элемент может храниться в памяти вне массива. Если вы выберете символ справки, вы увидите легенду:
Еще один ярлык, который стоит знать, заключается в том, что если вы выберете W в верхнем правом углу каждого метода сортировки, вы попадете прямо в запись в Википедии для этого метода сортировки.
Вся презентация была настолько впечатляющей, что ее использовали в качестве экспоната «Искусство алгоритма» на ежегодном Лондонском фестивале дизайна. Это еще раз доказывает, что код может быть красивым.
Наконец, я не могу не упомянуть всегда удивительные алгоритмы сортировки как танцы. Если вы еще не видели его, вас ждет угощение. Если у вас есть, вы можете побаловать себя повторным пробегом.