Описание алгоритма: • Начало алгоритма; • Ввод количества вершин; • Запоминание количества вершин в переменную n; • Ввод длины каждого ребра; • Запоминание значений ребер в матрицу A[i][j] выше главной диагонали; • Запись введенных ранее в матрицу значений симметрично относительно главной диагонали; • Нахождение минимального в матрице A[i][j] элемента m и запоминание его значения; • Запоминание координат x и y минимального элемента матрицы A[i][j]; • Вывод матрицы A[i][j] на экран; • Вывод минимального значения m матрицы A[i][j] на экран; • Создание матрицы B[n], в которую мы будем заносить по порядку все вершины, и заполнение ее нулями во избежании заполнения ее произвольными числами; • Запоминание координат x и y минимального значения m матрицы A[i][j] в первую и вторую позиции матрицы B[n]; • Начало первого цикла, который отвечает за вставку найденных элементов в матрицу B[n]; • Начало второго цикла необходимого для перебора всех ребер; • Проверка условия неравенства значения вершины нулю; • Начало третьего цикла, необходимого для перечисления всех оставшихся вершин, которые мы хотим добавить в цикл; • Обнуление флага s; • Начало четвертого цикла необходимого для сравнения выбранной вершины со всеми вставленными ранее в матрицу B[n] вершинами; • Проверяем условие, равна ли значение вершины из матрицы B[n] вершинам перечисляемым в предыдущем цикле и одновременно не равно ли это значение нулю; • Если условие выполняется, то присваиваем флагу истинное значение, иначе выходим обратно в четвертый цикл и увеличиваем значение счетчика этого цикла; • Проверяем условие равенства флага s ложному значению; • При выполнении условия проверяем условие неравенства следующего за значением текущего рассматриваемого ребра значения матрицы B[n] нулю; • При выполнении условия проверяем, проверяем меньше ли длина между потенциально вставляемой нами вершиной и заведомо большим числлом; • При выполнении условия запоминаем эту длину цикла в переменную p, его вершины в переменную h, а следующего за рассматриваемым в данном этапе ребра в переменную d; • При невыполнении условия 22 проверяем меньше ли длина цикла при вставке рассматриваемой вершины между последним и первым элементами; • При выполнении условия запоминаем длину цикла в переменную p, его вершины в переменную h, а следующего за рассматриваемым в данном этапе ребра в переменную d; • Закрываем все раннее открытые циклы кроме первого; • Переносим значения из матрицы B на одно значение вниз, чтобы вставить наше найденное значение вершины в правильное место цикла для получения минимальной длины; • Запоминание найденной вершины в ранее найденное положение матрицы B; • Завершение первого цикла; • Вывод полученного цикла в виде последовательности вершин на экран; • Запоминание максимального значения ребра полученного цикла; • Исключение наибольшего ребра из гамильтонова цикла; • Конец алгоритма.