Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая аисд.docx
Скачиваний:
0
Добавлен:
06.10.2025
Размер:
724.22 Кб
Скачать

4. Сортировка пузырьком

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

Данная функция реализует алгоритм сортировки пузырьком для массива ребер (Edge), где каждое ребро имеет свой вес (weight). Аргументы функции - массив ребер arr и его размерность n.

В данной функции мы используем два цикла: внешний цикл от 0 до n-1, который определяет количество итераций сортировки, и внутренний цикл от 0 до n-i-1, который проходит по всем элементам массива на текущей итерации. Внутри внутреннего цикла мы сравниваем элементы arr[j] и arr[j+1] по их весу (weight). Если arr[j] имеет больший вес, чем arr[j+1], то мы меняем их местами, используя временную переменную temp типа Edge.

Рис. 4

5. Обход графа

Обход графа - это процесс посещения каждой вершины графа. Обходы графа бывают двух типов: обход в ширину и обход в глубину.

Обход в глубину (Depth-First Search, DFS) начинается с выбора вершины и посещения ее. Затем мы переходим к соседней непосещенной вершине и повторяем процесс до тех пор, пока не посетим все вершины. Если в процессе обхода мы встречаем вершину, которая уже была посещена, то мы возвращаемся к предыдущей вершине и продолжаем поиск соседних непосещенных вершин. Обход в глубину реализуется с помощью стека.

Рис. 5

Обход в ширину (Breadth-First Search, BFS) начинается с выбора вершины и помещения ее в очередь. Затем мы извлекаем вершину из очереди и посещаем ее. Затем мы добавляем все непосещенные соседние вершины в очередь и повторяем процесс до тех пор, пока не посетим все вершины. Если в процессе обхода мы встречаем вершину, которая уже была посещена, то мы пропускаем ее. Обход в ширину реализуется с помощью очереди.

Рис. 6

6. Чтение матрицы смежности из файла

В теории графов и информатике матрица смежности - это квадратная матрица, используемая для представления конечного графа. Элементы матрицы указывают, являются ли пары вершин смежными или нет в графе. В частном случае конечного простого графа матрица смежности представляет собой (0,1)-матрицу с нулями на ее диагонали.

Эта функция читает матрицу смежности из файла и сохраняет ее в двумерный массив "matrix", а также сохраняет названия вершин в массив "graph". Функция принимает три параметра: имя файла, двумерный массив для хранения матрицы смежности и массив для хранения названий вершин. Также есть параметр "correct", который используется для проверки корректности матрицы смежности.

Функция начинается с открытия файла с именем, переданным в параметре "filename". Если файл успешно открыт, то функция считывает первую строку из файла и разбивает ее на отдельные слова, которые представляют названия вершин. Затем функция проходит по каждой строке матрицы смежности и считывает значения в двумерный массив "matrix". Если значение меньше 0, то функция устанавливает флаг "correct" в false и выводит сообщение об ошибке. Если файл не может быть открыт, то функция выводит сообщение об ошибке.

Рис. 7

Соседние файлы в предмете Алгоритмы и системы данных