Я пишу глупый маленький скрипт, чтобы помочь мне присвоить рейтинги фильмам в моей коллекции. У меня есть множество названий фильмов, которые нужно сортировать. Я хочу применить рекурсивный алгоритм слияния, чтобы сортировать фильмы по рейтингу. При каждом сравнении я хочу, чтобы форма в документе обновлялась. Пользователь выберет либо A, либо B - лучший из двух названий - и затем нажмите кнопку «продолжить». Он будет использовать эту информацию для продолжения сортировки. По завершении процесса пользователь ответит A или B на минимальное количество двоичных вопросов сравнения, необходимых для создания упорядоченного списка фильмов.Рекурсивная функция с пользовательским вводом
Моя проблема: как я могу вернуть рекурсивный алгоритм на вход из формы для каждого шага? Использование чего-то вроде confirm()
позволило бы блокировать код при вводе, но, очевидно, элементы страницы не могут этого сделать. Должен ли я включать некоторые неприятные функции тайм-аута? Держите какое-то глобальное закрытие? В идеале я хочу, чтобы кнопка «продолжить» была связана с обратным вызовом continueRecursion(), но я понятия не имею, как это сделать.
Любые предложения о том, как атаковать это?
Структура данных, которая используется для представления рекурсии, представляет собой 'Stack'. (Это имеет смысл, поскольку программный стек представляет собой стек.) Таким образом, создайте структуру данных стека, а затем сохраните эмулированные локальные переменные, представляющие каждый вызов функции на каждом уровне стека. Затем поместите этот стек в глобальную переменную - и, надеюсь, вы увидите, где это происходит ... – cheeken