Автор: Пользователь скрыл имя, 27 Октября 2013 в 23:14, курс лекций
Алгоритм - это точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату.
ЭВМ в настоящее время приходится не только считывать и выполнять определенные алгоритмы, но и хранить значительные объемы информации, к которой нужно быстро обращаться. Эта информация в некотором смысле представляет собой абстракцию того или иного фрагмента реального мира и состоит из определенного множества данных, относящихся к какой-либо проблеме.
Здесь построение MST начинается с графа, состоящего только из n вершин графа G и не имеющего ребер. Таким образом, каждая вершина является связанной (сама с собой) компонентой. Это дает n связанных компонентов. В процессе выполнения алгоритма связанные компоненты постепенно объединяются друг с другом, формируя остовное дерево (рис. 59).
При построении постепенно возрастающих связанных компонент поочередно проверяются ребра из множества E в порядке возрастания их длин. Если очередное ребро связывает две вершины из разных компонент, тогда оно добавляется в остовное дерево. Если это ребро связывает две вершины из одной компоненты, то оно отбрасывается, так как его добавление в связанную компоненту может
привести к образованию цикла. Число ребер, необходимое для ос-товного дерева равно n-1. Граф связан, а значит E содержит как минимум такое их количество. Когда остовное дерево будет содержать n-1 ребер, алгоритм завершается:
Создать список ребер L, в неубывающем по длине порядке while число отмеченных ребер < n-1 do begin Удалить w из головы списка L;
if w соединяет две несвязанных компоненты then
отметить
w и добавить к MST
else {w
- внутри компоненты}
не отмечать w {это приведет к циклу в MST}
end;
Сложность алгоритма для графа с n вершинами и m ребрами пропорциональна O(mlog m).
Библиографический список
3. *Бентли Д. Жемчужины творчества программистов. М.: Радио и
связь, 1990.
4. *Вирт Н. Алгоритмы + структуры данных = программы. М.: Мир,
1985.
5. *Вирт Н. Алгоритмы и структуры данных. М: Мир, 1989. 360 с.
8. *Дейкстра Э. Дисциплина программирования. М: Мир, 1978.
9. *Кнут Д. Е. Искусство программирования для ЭВМ: В 3 т. М.:
Мир, 1976.
10. Кнут Д. Е. Искусство программирования: В 3 т. М.: Вильямс,
2000.
2000. 80 с.
1986. 218 с.
Русскоязычные ресурсы Internet
ОГЛАВЛЕНИЕ
Предисловие 3
ВВЕДЕНИЕ 4
Понятия алгоритма и структуры данных 4
Анализ сложности и эффективности алгоритмов и структур данных 7
1. СТРУКТУРЫ ДАННЫХ 11
1.1. Элементарные данные 11
1.1.1. Данные числовых типов 11
1.2. Линейные структуры данных 16
1.2.7. Циклические списки 3 0
1.2.8. Разреженные матрицы 37
1.2.9. Стек 41
1.3. Нелинейные структуры данных 49
1.3.4. Деревья 55
1.4. Файлы 62
2. АЛГОРИТМЫ ОБРАБОТКИ ДАННЫХ 7 8
2.3. Алгоритмы поиска 8 9
2.3.1. Поиск в линейных структурах 8 9
2.3.2. Хеширование данных 92
2.3.4. Поиск по вторичным ключам 104
2.3.4. Использование деревьев в задачах поиска 106
2.3.5. Поиск в тексте 118
2.4. Алгоритмы кодирования (сжатия) данных 12 5
2.5. Алгоритмы сортировки 13 0
2.5.2.10. Сравнение алгоритмов внутренней сортировки... 150
2.5.3. Алгоритмы внешней сортировки 15 2
2.6. Алгоритмы на графах 153
2.6.3. Нахождение кратчайшего пути 1 58
2.6.4. Нахождение минимального остовного дерева 164
Библиографический список 167
Приложение. Русскоязычные ресурсы Internet 168
Рис. 15. Обходы деревьев
Рис. 15. Обходы деревьев
Рис. 17. Двоичное дерево и его организация