Вопросы по теме 'floyd-cycle-finding'

Алгоритм обнаружения циклов
Скажем, у меня есть функция f: f(0) = 0 f(i) = (i - 1) % 4 f(0..12): 0 0 1 2 3 0 1 2 3 0 1 2 3 Я хочу найти начало цикла и длину цикла, которые равны 1 и 4 соответственно. Алгоритм черепахи и зайца работает с повторяющимися...
1893 просмотров

Обнаружение цикла в LinkedList с использованием C#
В вопросе интервью: «Реализуйте алгоритм, который обнаруживает наличие цикла». Например, связанный список имеет цикл, например: 0--->1---->2---->3---->4---->5---->6 ▲ | |...
5116 просмотров
schedule 28.03.2023

Как найти начальный узел цикла в списке ссылок?
Согласно алгоритму поиска цикла Флойда, точка, где встречаются черепаха и заяц, объясняет круговой характер в списке ссылок. Чтобы найти начальный узел в цикле, мы инициализируем указатель черепахи на заголовок списка и начинаем увеличивать...
9588 просмотров
schedule 14.03.2022

Алгоритм обнаружения петли Флойда с разным размером шага
В алгоритме обнаружения петель Флойда в связанном списке мы обычно увеличиваем медленный указатель на 1 единицу, а быстрый указатель — на 2 единицы. Какие другие значения мы можем использовать для увеличения медленного и быстрого указателя и как...
776 просмотров

Когда алгоритм поиска цикла Флойда перестанет работать?
Я получаю вопрос из интервью об алгоритме поиска циклов Флойда : Когда алгоритм поиска цикла Флойда перестанет работать? Я имею в виду, есть ли правило для нахождения шага между быстрыми и медленными указателями?
1111 просмотров
schedule 04.06.2022

Алгоритм Флойда - Обнаружение цикла - не прекращается для примера
Может кто-нибудь объяснить алгоритм Флойда на этом примере. У меня это не завершается, и алгоритм реализован полностью? Что-то не так с моим кодом? Код выглядит следующим образом: Node* FindLoopBegin(Node *head){ Node *slowptr =...
271 просмотров

Как реализовать алгоритм Флойда заяц и черепаху в Agda?
Я хочу перевести следующий код Haskell в Agda: import Control.Arrow (first) import Control.Monad (join) safeTail :: [a] -> [a] safeTail [] = [] safeTail (_:xs) = xs floyd :: [a] -> [a] -> ([a], [a]) floyd xs [] = ([], xs)...
251 просмотров

Почему точка встречи в цикле состоит из того же количества шагов, что и начало связанного списка?
Существует этот, по-видимому, стандартный подход, чтобы найти, есть ли в связанном списке цикл, а затем вернуть узел, который находится в начале цикла, который является алгоритмом floy с медленными/быстрыми указателями. Код и логика ясны, кроме 1...
61 просмотров

Программа Happy Number с использованием массива, помогите мне, как рассчитать временную сложность?
Я написал программу Happy number, используя массив, помогите мне рассчитать временную сложность? Любое число будет называться счастливым числом, если после многократной замены его числом, равным сумме квадратов всех его цифр, мы получим число «1»....
57 просмотров