- •Грубый подход определения макс. Потока:
- •Классификация:
- •47. Цель оптимальной сортировки:
- •48. Дано множество из n чисел; нужно найти тот его элемент, который будет k-м по счѐту,
- •Сбалансированное многопутевое слияние
- •53. Особенности естественного слияния. Сортировка, при которой сливаются 2 упорядоченные серии – упорядоченное слияние.
- •55. Похожа на многофазную сортировку. Отличие заключается в самом процессе слияния:
- •Недостатки хеширования:
- •Классы хеш-функций:
- •65. По сравнению с методом поиска с возвратом метод ветвей и границ требует:
- •Разновидности метода решета
- •68. Эвристические алгоритмы
- •Эвристический подход для улучшения решения задачи о шахматном коне
- •Характеристика жадных алгоритмов
- •Жадные алгоритмы для задачи о рюкзаке
- •69. Файл - это совокупность элементов данных, сгруппированных для хранения и использования в информационно-вычислительных системах.
- •Логическая и физическая структура файла
- •71. Изучение np-полных задач связано с так называемым вопросом р≠np. Этот вопрос был поставлен в 1971 году и является сейчас одной из наиболее интересных и сложных проблем теории вычислений.
Сбалансированное многопутевое слияние
В основе метода внешней сортировки сбалансированным многопутевым слиянием является распределение серий исходного файла по m вспомогательным файлам B1, B2, ..., Bm и их слияние в m вспомогательных файлов C1, C2, ..., Cm. На следующем шаге производится слияние файлов C1, C2, ..., Cm в файлы B1, B2, ..., Bm и т.д., пока в B1 или C1 не образуется одна серия. Многопутевое слияние является естественным развитием идеи обычного (двухпутевого) слияния Преимуществом сортировки сбалансированным многопутевым слиянием является то, что число проходов алгоритма оценивается как O(log n) (n - число записей в исходном файле), где логарифм берется по основанию n. Порядок числа копирований записей - O(log n). Конечно, число сравнений не будет меньше, чем при применении метода простого слияния. Число перестановок = n* log n.
53. Особенности естественного слияния. Сортировка, при которой сливаются 2 упорядоченные серии – упорядоченное слияние.
Пример 2-путевого 2-фазного естественного слияния.
А – 17 31 05 59 13 41 43 67 11 23 29 47
В – 17 31 13 41 43 67
С – 05 59 11 23 29 47
А – 05 17 31 59 11 13 23 41 29 43 47 67
В – 05 17 31 59
С – 11 13 23 29 41 43 47 67
Сорт. естеств. слиянием заканчивается, если:
-на фазе слияния осталась ровно 1 серия;
-второй по счету вспомогательный файл для однофазной сорт после распределения серий остался пустым. Так как признаком конца серии в естеств. слиянии является результатом слияния двух соседних элементов, то две/несколько серий, распределенных друг за другом, могут объединяться в одну.
Ex - 1 2 9 3 39 11 4 18 13 5 16 24 15 4 25 17 317
F1 – 1 2 9 11 13 15 17 317
3 39 4 18 5 16 24 4 25 //стремиться вверху собрать одну серию.
Естественное слияние наз. сбалансированным, если после фазы равпределения кол-во серий во вспомогательных файлах отличается друг от друга не более чем на 1. В противном случае слияние считается несбалансированным. Чтобы в сбалансир. слиянии серии распределялись корректно, необходимо во время записи очередной серии в файл выполнять следующую проверку: если серия является продолжением предыдущей, то записать в этот файл не 1, а 2 серии:
F1 – 1 2 9 11 4 18 5 16 24 17 317
3 39 13 15 4 25
54. Метод основан на том, что имеется несколько входных файлов с разным числом серий и только 1
выходной файл. При каждом проходе серии из входных файлов сливаются, пока входной файл с наименьшим числом серий не будет исчерпан. Тогда освобожденный файл становиться входным и начинается новый проход. Серии из всех оставшихся файлов сливаются в выходной файл.
Конец сортировки: все серии => 1 серия.
f1 f2 f3
исход. сост. 13 8
проход1 5 0 8
проход2 0 5 3
проход3 3 2 0
Многофазная сортировка более эффективна, чем сбалансир. многопутевая, т.к. при одном и том же
кол-ве файлов число сливаемых файлов больше.
Число проходов при многофазной сортировке будет оптимальным, если количество серий во вход.
файлах будет подчиняться числам Фибоначчи. (Послед-ть Фибоначчи – посл-ть, где каждый эл-т = сумме 2-х предыдущих – 0 1 1 2 3 5 8 13 21…)
Число сравнений в файлах при оптимальном распределении по (f-1) файлов должно быть числами Фибоначчи, порядком (f-2). Недостающее число серий можно дополнять пустыми сериями, распределяя их равномерно между входными файлами. Поскольку число серий в исходном файле может не обеспечивать возможность такого распределения серий, применяется метод добавления пустых серий, которые в дальнейшем как можно более равномерного распределяются между промежуточными файлами и опознаются при последующих слияниях. Понятно, что чем меньше таких пустых серий, т.е. чем ближе число начальных серий к требованиям Фибоначчи, тем более эффективно работает алгоритм.