6.2. Функции сортировки и поиска

6.2. Функции сортировки и поиска

Сортировка и поиск являются двумя фундаментальными операциями, потребность в которых постоянно возникает во многих приложениях Библиотека С предоставляет ряд стандартных интерфейсов для осуществления этих задач.

Все процедуры разделяют общий лейтмотив; данные управляются через указатели void*, а сортировку осуществляют предоставленные пользователем функции. Обратите также внимание, что эти API применяются к данным в памяти. Структуры сортировки и поиска в файлах значительно более сложны и выходят за рамки вводного руководства, подобного данному. (Однако, команда sort хорошо работает для текстовых файлов; см. справочную страницу для sort(1). Сортировка двоичных файлов требует написания специальной программы.)

Поскольку ни один алгоритм не работает одинаково хорошо для всех приложений, имеются несколько различных наборов библиотечных процедур для сопровождения искомых коллекций данных. Данная глава рассматривает лишь один простой интерфейс для поиска. Другой, более развитый интерфейс описан в разделе 14.4 «Расширенный поиск с использованием двоичных деревьев». Более того, мы намеренно не объясняем лежащие в основе алгоритмы, поскольку данная книга об API, а не об алгоритмах и структурах данных. Важно понять, что API можно рассматривать как «черные ящики», выполняющие определенную работу без необходимости понимания подробностей их работы.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Два вида сортировки

Из книги Базовые алгоритмы Qt4 (Qt 4`s Generic Algorithms) автора S?rvig Morten

Два вида сортировки Алгоритмы qSort() и qStableSort()могут быть использованы при сортировке элементов QList<T>, QVector<T> или в любом динамическом C++ массиве. С Qt 4, также возможно определить любой оператор сравнения (вместо operator<()). Stable сортировка имеет свойство сохранения порядка


Принципы работы функции поиска

Из книги Microsoft Windows SharePoint Services 3.0. Русская версия. Главы 9-16 автора Лондер Ольга

Принципы работы функции поиска Прежде чем рассказывать о выполнении поисковых запросов, необходимо рассмотреть основные концепции работы системы поиска. Поисковый запрос содержит одно или несколько слов, представляющих содержимое, которое нужно найти. Область


1.8.5. Использование функции Spotlight для поиска по тексту

Из книги Самоучитель работы на Macintosh автора Скрылина Софья

1.8.5. Использование функции Spotlight для поиска по тексту Некоторые приложения позволяют выделить часть текста, а затем с помощью Spotlight найти совпадения в других текстовых документах или на web-страницах, хранящихся на Маке. Обратите внимание, поиск будет осуществляться не в


Алгоритмы сортировки

Из книги Фундаментальные алгоритмы и структуры данных в Delphi автора Бакнелл Джулиан М.


Основы сортировки

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

Основы сортировки Алгоритмы сортировки можно разделить на два типа: устойчивые и неустойчивые. К устойчивой сортировке относятся те алгоритмы, которые при наличии в наборе данных нескольких равных элементов в отсортированном наборе оставляют их в том же порядке, в


Обсуждение сортировки

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

Обсуждение сортировки Хотя упорядочение и агрегирование являются операциями с различными результатами, на некотором уровне они взаимодействуют, когда обе используются в запросе и расположение их предложений является важным. Внутри системы они применяют некоторые


Временное пространство сортировки

Из книги автора

Временное пространство сортировки Запросы с предложениями ORDRE BY и GROUP BY "паркуют" промежуточные наборы для дальнейших операций сортировки во временном хранилище. Рекомендуется иметь доступную память, приблизительно в 2.5 раза превышающую размер самой большой таблицы,


Направление сортировки

Из книги автора

Направление сортировки По умолчанию сортировка выполняется в возрастающем порядке. Для выполнения сортировки в убывающем порядке добавьте ключевое слово DESC, как показано в примере 23.8. Если вам нужна убывающая сортировка, создайте для нее убывающий индекс. Firebird не может


11.1.2. Сохранение результатов сортировки

Из книги автора

11.1.2. Сохранение результатов сортировки Чтобы сохранить результаты сортировки, укажите опцию -o и выходной файл. Можно также воспользоваться традиционным методом переадресации с помощью оператора >. В следующем примере результаты сортировки сохраняются в файле results.out$


11.1.12. Несколько ключей сортировки

Из книги автора

11.1.12. Несколько ключей сортировки При использовании опций +позиция и -k следует быть особенно аккуратным. Если вы внимательно прочитали их описание в табл. 11.1, то должны были отметить такой факт: когда не указана конечная позиция, ключ сортировки считается заканчивающимся


12.5.2. Алгоритмы сортировки и упорядочения

Из книги автора

12.5.2. Алгоритмы сортировки и упорядочения Четырнадцать алгоритмов сортировки и упорядочения предлагают различные способы упорядочения элементов контейнера. Разбиение (partition) – это разделение элементов контейнера на две группы: удовлетворяющие и не удовлетворяющие


11.20. Устаревшие функции поиска адресов IPv6

Из книги автора

11.20. Устаревшие функции поиска адресов IPv6 В процессе разработки IPv6 интерфейс поиска адресов IPv6 много раз претерпевал серьезные изменения. В какой-то момент интерфейс был сочтен усложненным и недостаточно гибким, так что от него полностью отказались в RFC 2553 [38]. Документ RFC