- PVSM.RU - https://www.pvsm.ru -

Сортировка методом StackSort

Несколько дней назад на xkcd.com был опубликован комикс [1] о неэффективных методах сортировки. Alt-текст к нему рассказывал о сортировке методом StackSort, который заключается в том, чтобы скачать со StackOverflow блоки кода, которые можно найти по запросу «сортировать список» и запускать один за другим, пока не найдётся работоспособный вариант. Бред? Ещё бы не бред! Встречайте на Гитхабе реализацию StackSort [2] на JavaScript.

Скрипт скачивает со StackOverflow ответы с самым высоким рейтингом на вопросы, помеченные тегами «sort» и «javascript», и пытается выполнить последний блок кода в ответе, предполагая, что это и есть окончательный вариант алгоритма. Да, именно так, берёт из интернета кусок кода и делает eval(), так что поосторожнее! Впрочем автор попытался сделать всё возможное, чтобы алгоритм был безопасным — он берёт код только из ответов, которые помечены как принятые, и только из тех, которые были опубликованы раньше появления комикса на XKCD, чтобы кто-нибудь специально не подложил вредоносный код.

Если блок кода выполняется без ошибок и возвращает массив, результат показывается пользователю. Если он неправильный, можно пробовать дальше. Алгоритм работает как с числами, так и со строками и объектами JSON. Что до эффективности — в браузере Chromium под Ubuntu список из нескольких чисел сортируется 5-10 секунд (в Firefox у меня StackSort не заработал). Медленно, зато очень масштабно и универсально, с использованием коллективного разума всего Интернета.

Автор: ilya42

Источник [3]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/algoritmy/29739

Ссылки в тексте:

[1] комикс: http://xkcd.com/1185/

[2] реализацию StackSort: http://gkoberger.github.com/stacksort/

[3] Источник: http://habrahabr.ru/post/173333/