Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методы и алгоритмы сортировки и обработки данных / Методические указания для заочников (часть 1).doc
Скачиваний:
35
Добавлен:
01.05.2014
Размер:
148.99 Кб
Скачать

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-х таблиц, получаемых при предтрансляции. В этом случае из двух сдвигов выбирается больший, причем и тот и другой говорят о том, что н один из этих двух сдвигов не может привести к полному совпадению.