Азбука. Буква А. Алгоритм.

algorithm

Алгоритм. Алгоритм это… Это описано в wikipedia, Там дано несколько определений. Выберай любое: последовательность действий, набор инструкций, совокупность действий и правил для решения задачи, — мне вот это нравится — «дискретный набор конечного числа правил, точных предписаний, определяющих порядок выполнения операций над исходными данными для достижения искомого» — точно, заумно и не сразу не запомнишь.

Программист — человек специфический и посему одни и те же алгоритмы применяемые им в жизни и в работе — это очень большая разница.

Сортировка. Расстановка книг на полке по автору книги — это уборка, а не сортировка. Алгоритмов сортировки — больше 3-х точно, но на практике пользуются «пузырьком» — метод надежный, проверенный временем, учили его — он был первый и простейший. Вот и запомнился. На полке, книги, методом «пузырька» расставлять пробовали? Увлекательнейшее занятие.

Поиск. Замечательная вещь. Возьмите словарь англо-русский словарь Мюллера образца 196 какого-то года. Сколько там страниц я не помню, но словарных статей около 70 тысяч. Найдите слово gerrymander. (Подсказка — словарь, видимо отсортирован по буквам алфавита.) Сколько людей будет перелистывать страницу за страницой в поиске этого слова. Надеюсь ни одного. Но в вот в коллекции поискать элемент простым перебором, за милую душу. А что не так? Закон Мура еще никто не отменял. Можно и по простому сделать.

Хеширование. Это очень страшное и непонятное слово, и к реальной жизни отношения не имеет. Кто сказал, что чашки и посуда должны быть на кухне, туфли в прихожей, а вещи в шкафу. Посему задача «поиск чистых носков» становится нетривиальной, увы, потому что в поиске надо осмотреть все помещения. И вообще нахождение вещей в определенных местах — это соблюдение порядка, а не хеширование.

Кэширование. Еще одно слово не-русски. Таблицу умножения всех заставляют учить в школе. Зачем учат, вроде бы, школьники догадываются, правда, позже они понимают что — все таки на калькуляторе проверять свою память надо. Хорошо хоть таблицы Брадиса не заставляют учить. Связь этих таблиц с кэшированием абсолютно не просматривается. Зачем что считать один раз, запоминать и потом где-то n-раз использовать, в информационный век это моветон — можно считать каждый раз, во вторых это надежнее — вдруг теперь семью три уже не двадцать один, вон, сколько всего интересного в образовании происходит. В третьих Верховный Совет Закон Мура не отменил.

За математиков вообще обидно, люди с определением не определились, создали теорию алгоритмов, теоремы доказывают. А тут бах тебе — алгоритм «раскрутки торговой марки», и прощай все характеристики алгоритма — определенность, понятность, завершаемоесть и массовость. И куда это годится

Интересно у нейро-лингвистического программирования алгоритмы есть? Видимо есть. «Алгоритм завершения интервью с интересными, потенциальными, и неподходящими кандидатами» — звучит то как. Интересно какая у него сложность? O(n), (n log n)?

Tags: , , , ,