Оценить:
 Рейтинг: 5

Гуманитарные основы комбинаторных алгоритмов

Год написания книги
2023
<< 1 2 3
На страницу:
3 из 3
Настройки чтения
Размер шрифта
Высота строк
Поля
Описание для проверки на бумаге

На входе первый найденный путь x=abdef:

– Двигаемся справа налево по массиву х, выделяем два соседних элемента (кроме последнего) abd [e] f, левый (d) используем в качестве указателя на массив с вершиной, правый (e) в качестве указателя на элемент этого массива.

Ищем элемент в d после е, если он есть, убираем в x справа от e все элементы. Получаем в x=abde. Заменяем правый элемент (е) на найденный элемент.

– Дописываем (вторым циклом) правую часть от элемента (или индекса правого элемента), который был заменен и до последнего элемента (f). В этом цикле требуется брать всегда массивы с 0 индексом, так как массивы упорядочены по условию. В данном случае мы сразу получили в правой части последний элемент x=abdf, поэтому второй цикл сработает вхолостую.

– После формирования правой части возвращаемся к обходу массива справа налево.

Отсутствие элементов в первой вершине (массив а) – условие выхода из алгоритма.

Тот же код без функций и рекурсии, первый путь в x задан:

<?php

//Массивы ребер
$a=array (’b’,’c’,’d’);
$b=array (’d’,’e’,’f’);
$c=array (’d’,’e’,’f’);
$d=array (’e’);
$e=array (’f’);

//Первый путь
$x=’abdef’;
print $x;
print '<br>»;

$j=strlen ($x);

while ($j!=0) {


<< 1 2 3
На страницу:
3 из 3