Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Справочная информация по алгоритмам.doc
Скачиваний:
34
Добавлен:
20.06.2014
Размер:
399.87 Кб
Скачать

6. Сравнение строк.

Строка A больше строки B, если первый несовпадающий символ имеет код в первой строке больше, чем во второй. Строки могут сравниваться в зависимости от регистра и без этой зависимости.

Алгоритм аналогичен поэлементному сравнению векторов с дополнением для инвариантности к регистру (прописные, строчные буквы) фрагмента, приводящего обе строки к одному регистру.

7. Копирование строки.

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

8. Определение количества заданных символов в строке.

Выполняется подсчет результатов сравнений.

9. Заполнение строки символами.

Аргументы: строка, символ или набор символов, количество повторений.

10, 11. Определение первого и последующего вхождений подстроки в строку.

Используется алгоритм из 5с запоминанием в глобальной переменной результата текущего поиска для его использования в …

12. Функции смены регистра.

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

13. Функции преобразования из числовых типов в строчные и обратно.

Используются, если стандартные функции форматированного ввода-вывода не могут быть использованы.

14. Работа со специальными типами строк.

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

Вопросы по теме

  1. Строка как особый вид информации

  2. Основные алгоритмы обработки строк

2. Процессы обработки информации

Большинство задач, связанных с обработкой и поиском информации, решаются быстрее, проще и эффективнее, если данные хранятся в памяти ЭВМ в определенном порядке.

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

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

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

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

В записи как описании информационных объектов формируются информационные массивы, которые обрабатываются ОС. Ключомназывают поле или совокупность полей (составной), которое однозначно идентифицирует запись в информационном массиве (экземпляр объекта).

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

Например, сортировка по алфавиту – упорядочивание по значению букв.

При наличии операции сравнения строк упорядочивание производится по строкам. В этом случае возможна сортировка по нескольким ключам.

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

Например, создается вектор, элементами которого являются структуры из двух полей. В одном поле хранится значение ключа, в другом – порядковый номер данной записи в исходном информационном массиве. Таблицы такого типа называют индексными.

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

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

Сортировка, как программное обеспечение, обычно поставляется в составе системного ПО, либо с ОС, либо со средствами разработки программ.