
- •Организация и описание данных.
- •Тема 4. Алгоритмы обработки текстовой информации 14
- •Тема 3. Методы и алгоритмы сортировки массивов и последовательностей данных.
- •Тема 4. Алгоритмы обработки текстовой информации
- •Тема 2. Определение, описание и представление в эвм основных структур данных
- •2.1. Массивы
- •2.2. Множества
- •2.3. Записи
- •2.4. Последовательности
- •2.5. Данные с динамической структурой
- •2.5.1. Рекурсивные типы данных
- •Тема 3. Методы и алгоритмы сортировки массивов
- •3.1. Сортировка массивов
- •3.1.1. Сортировка с помощью прямого включения (мпв)
- •3.1.2. Сортировка с помощью прямого выбора
- •3.1.3.Сортировка с помощью прямого обмена (Пузырьковая сортировка)
- •3.1.4. Шейкерная сортировка
- •3.1.5. Сортировка методом Шелла
- •3.1.6. Сортировка с помощью дерева
- •44 55 12 42 94 18 06 67
- •3.1.7. Сортировка с помощью разделения(метод Хоара)
- •3.1.8.Сортировка вычислением адреса
- •3.1.9. Поразрядная сортировка
- •3.1.10.Сортировка поразрядным группированием
- •3.2. Сортировка последовательностей
- •3.2.1. Трехленточная сортировка
- •3.2.2. Сортировка естественным слиянием
- •3.2.3. Многопутевая сортировка
- •3.2.4. Многофазная сортировка
- •Тема 4. Алгоритмы обработки текстовой информации
- •4.1. Алгоритм Кнута, Мориса м Пратта ( кмп - алгоритм )
- •4.2. Алгоритм Боуера и Мура ( бм - алгоритм )
- •4.3. Комбинированный алгоритм
- •Указания к выполнению контрольных работ
- •Общие требования по оформлению контрольных работ
- •Задания Задание 1. Сортировка массивов
- •Задание 2. Сортировка последовательностей
- •Задание 3. Обработка текстовой информации
3.2.3. Многопутевая сортировка
Данный метод сортировки является модификацией метода естественного слияния. Временные затраты на любую сортировку последовательностей пропорциональны числу требуемых проходов, так как при каждом проходе копируются все данные. Чтобы уменьшить число этих проходов, серии распределяют на последовательности, число которых больше 2-х. Слияние Р серий, поровну распределены в М последовательностей, дает в результате Р/М серий. Второй проход уменьшить это число до Р/M¤, третий - до Р/M3 и т.д. Поэтому общие число проходов многопутевого слияния будет равно Log m K, где К - число элементов в последовательности. Итак, в этом методе, по сравнению с методом естественно слияния, добавляются М путей распределения и слияния последовательностей.
3.2.4. Многофазная сортировка
Суть методы состоит в том, что в каждый момент сливаются элементы из двух последовательностей и записываются в третью. Как только одна из входный последовательностей исчерпывается, она сразу становиться выходной для операции слияния из оставшихся, не исчерпанной входной последовательности, и предыдущей выходной; понятие прохода здесь становиться расплывчатыми.
Пример:
Имеем 2 последовательности: в первой 13 серий, во второй 8 серий. При первом проходе сливаются 8 серий в третьей последовательности, в первой остается 5. При втором проходе 5 серий из второй и третьей последовательности сливаются во второй и т.д.
1 проход: 13 8 --
2 проход: 5 -- 8
3 проход: -- 5 3
4 проход: 3 2 --
5 проход: 1 -- 2
6 проход: -- 1 1
7 проход: 1 -- --
Тема 4. Алгоритмы обработки текстовой информации
4.1. Алгоритм Кнута, Мориса м Пратта ( кмп - алгоритм )
Идея: Начиная сравнение образа с самого начала, мы можем уничтожать ценную информацию. После частичного совпадения начальной части образа с соответствующими символами строки мы фактически знаем пройденную часть строки и можем вычислить некоторые сведения, с помощью которых можно будет быстро продвинуться по тексту.
Пример:
Строка: Hoola-Hoola girls like Hooligans
Образ : Hooligan
Hoola-Hoola girls like Hooligans
Hooligans
Hooligans
Hooligans
Hooligans
Hooligans
Hooligans
...
Hooligans
4.2. Алгоритм Боуера и Мура ( бм - алгоритм )
Идея БМ - алгоритма основана на необычном соображении, а именно - сравнение символом начинается с конца образа, а не сначала. Как и в КМП - алгоритме образ перед поиском трасформируется в некоторую таблицу. Пусть для каждого символа Х из алфавита Dх - есть расстояние от самого правого в образе входжения Х до его конца. Предположим, что обнаруженно расхождение между образом и строкой. Тогда образ можно сразу же сдвинуть вправо на Dpm-1 позиций, т.е. на число позиций => 1. Если же Pm-1 в образе вообще не встречается, то сдвигаться можно на длину всего образа.
Пример:
Строка: Hoola-Hoola girls like Hooligans
Образ : Hooligan
Hoola-Hoola girls like Hooligans
Hooligan
Hooligan
Hooligan
Hooligan
Hooligan
4.3. Комбинированный алгоритм
Данный алгоритм является объединением КМП и БМ алгоритмов. В этом случае БМ алгоритм дает большие сдвиги в случае несовпадения, КМП - дает ощутимые сдвиги в случае совпадения (частичного). Этот метод требует 2-х таблиц, получаемых при предтрансляции. В этом случае из двух сдвигов выбирается больший, причем и тот и другой говорят о том, что н один из этих двух сдвигов не может привести к полному совпадению.