Пошук в ширину
Суть алгоритму полягає в тому, щоб перебрати всіх наступників початкової вершини (кореневого вузла), і далі по ланцюжку. Такий алгоритм допомагає отримати компоненту зв'язності, тобто схему, куди можна прийти з якоїсь заданої вершини. Застосовуючи цей алгоритм по черзі для всіх вершин, можна знайти найкоротшу відстань, оптимальний шлях між двома вершинами і так далі, в залежності від запропонованих умов.
Пошук в глибину
Алгоритм пошуку в глибину описується наступним чином: для кожної непройденої вершини необхідно знайти всі непройдені суміжні вершини і повторити пошук для них. Використовується в якості підпрограми в алгоритмах пошуку одно- і двусвязного компонент, топологічної сортування. Реалізується простіше пошук в глибину, але витрат на ресурсів більше, так як тут головну роль відіграє рекурсія.
Алгоритм Дейкстри
Знаходить найкоротшу відстань від однієї з вершин графа до всіх інших. Алгоритм працює тільки для графів без ребер негативноїваги (так як на такому циклі нескінченно буде зменшуватись найкращий шлях). На кожному кроці циклу ми шукаємо вершину з мінімальною відстанню і флашком рівним нулю. Потім ми відзначаємо її пройденою і перевіряємо всі сусідні з нею вершини. Якщо в ній відстань більше, ніж сума відстані до поточної вершини і довжини ребра, то зменшуємо його. Цикл завершується коли всі вершини будуть пройдені. Час роботи алгоритму оцінюється як O (N ^ 2).
Алгоритм Флойда
Також знаходить масив найкоротших відстаней. Але на відміну від алгоритму Дейкстри, він використовує динамічне програмування. На кожному кроці циклу k створюється масив рішень, де w [i, j] містить мінімальну відстань, де використовуються тільки вершини 1,2..k і самі i та j. На початковому етапі W копіює матрицю суміжності. Тоді на кожному k є два варіанти - мінімальний шлях йде через вершину k чи ні. Теоретично такий метод набагато легше реалізувати (банальний перебір), але використовує більше машинних ресурсів, ніж Дейкстра (складність алгоритму оцінюється як O (N ^ 3), зате шукає мінімальні шлях між усіма парами точок).
Алгоритм Краскала
Знаходить каркас мінімальної ваги, тобто такий підграф вихідного графа, який би був зв'язковим, містив всі вершини вихідного графа і сумарна вага ребер була найменшою. У цьому завданні використовується список ребер. Спочатку поточна множина ребер встановлюється порожньою. Потім, поки це можливо, проводиться наступна операція: з усіх ребер, додавання яких до вже наявного безлічі не викличе появу в ньому циклу, вибирається ребро мінімальної ваги і додається до вже наявної множини. Коли таких ребер більше немає, алгоритм завершений. Масив ребер повинен бути заздалегідь відсортований у вазі (можна привести доказ: якщо спочатку розглядати ребро R1 (i, j)> R2 (i, j), то вонр потім буде видалено, оскільки ми зустріли в списку ребер R2 (i, j), який важить менше R1, а видалення ребер в алгоритмі не передбачено).