Сортировка и поиск являются двумя фундаментальными концепциями вычислительной науки. Они используются практически в любом приложении, работающем с базой данных, компилятором или даже Internet. Чем больше информации можно получить из Internet, тем важнее становится точное знание о том, где она размещена.
Общеизвестно, что сортировка не является настолько серьезной задачей в контексте PHP, насколько она является таковой для языка программирования C++. PHP имеет несколько очень мощных функций сортировки, одна из которых позволяет определить, каким образом можно сравнить два элемента. В этой главе рассматриваются некоторые классические проблемы вычислительной науки. Изучение этих концепций может представляться интересным при использовании таких обобщенных языков программирования, яркими представителями которых являются языки C и Ada. Но понимание этих концепций позволит понять внутренние механизмы работы баз данных, Web-серверов и даже PHP. Таким образом, вы будете во всеоружии при решении неизбежных проблем, решение которых с помощью встроенных функций PHP не представляется возможным.
Кроме того, в этой главе обсуждаются случайные числа, которые могут помочь в упорядочивании данных. Практическая их реализация применения обычно принимает вид уникальных идентификаторов, характеризующих файлы или сеансы.
21.1. Сортировка
Сортировка предполагает размещение набора значений в определенном порядке. Правила сортировки могут быть достаточно простыми, например сортировка строк по алфавиту. А могут быть и достаточно сложными - сначала отсортировать по названиям стран, затем по названиям штатов и по названиям городов. Процесс сортировки может принимать несколько форм, но всегда включает сравнение двух элементов с применением набора правил упорядочивания. По результату сравнения можно определить расположение двух значений по порядку и по необходимости поменять их местами.
Существуют три класса сортировок: обмен, вставка и выборка. При применении метода обмена два элемента сравниваются и по мере необходимости меняются местами. Этот процесс продолжается до тех пор, пока не будет достигнут конец списка. Метод вставки предусматривает удаление элементов из одного списка и вставки их в другой. При переносе каждый элемент вставляется в нужное место. После того как будут перенесены все элементы исходного списка, элементы нового списка уже будут располагаться в правильном порядке. Сортировка с выборкой предусматривает просмотр исходного списка на предмет меньшего значения и вставки его в результирующий список. Сортировки вставкой и выборкой являются двумя сторонами одной медали. Если при первом методе сканируется новый список, то во втором - старый.
Как было замечено ранее, алгоритм сортировки заключается в основном в сравнении и возможном перемещении элементов списка. В среднем для всех алгоритмов время, необходимое для перемещения элемента, примерно одно и то же. Справедливо и то, что сравнение не зависит от реальной сортировки. Приняв это за константу, самым важным вопросом становится следующий: сколько раз алгоритм будет выполнять каждое из этих действий?
Конечно, сортировка должна происходить в соответствии с контекстом данных. Одни алгоритмы работают очень хорошо с неупорядоченными данными, но при этом работают очень медленно с упорядоченными. Другие алгоритмы плохо проявляют себя с большим количеством элементов, тогда как третьи потребляют слишком много ресурсов и поэтому неприемлемы при обработке малых объемов данных. Как и любой другой специалист, программист должен сам подбирать рабочий инструмент, соответствующий поставленной задаче.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Сортировка, поиск и случайные числа
17-05-2015
<< Предыдущая статья | Следующая статья >> |
PHP. Алгоритмы | PHP. Сортировка, поиск и случайные числа. Часть Вторая. |