【问题标题】:recursive function with user input具有用户输入的递归函数
【发布时间】:2012-06-16 03:30:42
【问题描述】:

我正在编写一个愚蠢的小脚本来帮助我为我收藏的电影分配评级。我有一系列需要排序的电影标题。我想应用一种类似合并排序的递归算法来按评级对电影进行排序。在每次比较时,我都希望更新文档上的表单。用户将选择 A 或 B - 两个标题中较好的一个 - 然后单击“继续”按钮。它将使用此信息进行排序。在该过程结束时,用户将回答 A 或 B 到生成电影有序列表所需的最小二进制比较问题数。

我的问题:如何让递归算法在每一步都等待表单的输入?使用confirm() 之类的东西将允许代码在确定输入时阻塞,但显然页面元素不能这样做。我应该涉及一些讨厌的超时功能吗?保持某种全球封闭?理想情况下,我希望将“继续”按钮链接到 continueRecursion() 回调,但我不知道该怎么做。

关于如何攻击这个有什么建议吗?

【问题讨论】:

  • 用于表示递归的数据结构是Stack。 (这是有道理的,因为程序栈是一个栈。)所以创建一个栈数据结构,然后在栈的每一层存储代表每个函数调用的模拟局部变量。然后将该堆栈放入一个全局变量中 - 希望你能看到这是怎么回事......

标签: javascript recursion


【解决方案1】:

只需在函数调用之间存储结果,并让用户成为启动例程的人。

所以:

  1. 获取数据
  2. 目前的选择
  3. 根据用户的选择,将当前选择+旧数据提供给排序例程。
  4. 将当前数据排序到第 1 步并再次继续。

您只需将数据保存在全局中或继续传递它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 2013-03-22
    相关资源
    最近更新 更多