问题标签 [non-recursive]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5404 浏览

algorithm - 递归与非递归小算法的时空复杂度

考虑两个函数,它们接受一个无符号整数作为参数并返回该数字的位数。一个函数是递归的,另一个是非递归的。

就复杂性而言,哪个实现更好?

使用的语言是 C/C++。

这是非递归函数:

递归函数:

我建议时间复杂度相同:O(n),空间复杂度不同:O(n)递归。O(1) 非递归。

0 投票
1 回答
1251 浏览

depth-first-search - 非递归 DFS 与 BFS,仅在堆栈与队列方面有所不同?

我正在查看一般图的非递归 DFSBFS。除了前者使用堆栈而不是队列这一事实之外,唯一的区别是它“延迟检查是否已发现顶点,直到顶点从堆栈中弹出,而不是在推送顶点之前进行检查”。为什么这个“访问”检查顺序不同?或者换一种说法,我们可以通过简单地将 BFS 中的队列替换为堆栈来将 BFS 更改为非递归 DFS 吗?

我检查了我能找到的所有帖子,例如thisthis,但没有一个可以澄清这个问题。

0 投票
2 回答
108 浏览

makefile - 在非递归makefile中制作相对于给定路径的zip存档

我正在使用类似于此处介绍的非递归 make 的实现:http: //evbergen.home.xs4all.nl/nonrecursive-make.html

这是问题的一个例子。

主要Makefile包括foo/Rules.mk. foo/Rules.mk包含片段:

不幸的是,这会创建一个包含 的 zip 存档foo/bar,但我需要它包含bar,也就是说,使存档相对于给定目录。cd不起作用。

在一般情况下如何使这项工作(d 可以是任何路径,zip 包含任意选择的文件和子目录)?

0 投票
0 回答
577 浏览

java - 迭代快速排序步骤?

我必须在java中实现一个迭代快速排序来完成作业。我已经搜索了很多关于它的信息,但我找不到一个清楚解释如何实现迭代快速排序的网站。

我在java中找到了这段代码,它的排序很好,但我不知道它是如何工作的,但我知道递归快速排序是如何工作的。

我已经用我的问题评论了代码

我对分区方法很困惑,我不知道它做了什么。

如果有人可以向我解释进行迭代快速排序的主要步骤,我会很高兴。

谢谢你的帮助。

0 投票
3 回答
1836 浏览

git - 非递归 git log 和 diff

仅在当前目录中,但不在子目录中

相等的

可能吗?

0 投票
2 回答
236 浏览

java - 非迭代合并排序算法的合并异常

我正在尝试创建 MergeSort 的非递归版本,但由于某种原因,合并使代码无法完整运行。

合并排序代码:

合并代码:

这就是我填充输入数组(大小为 100)的方式:

例外是numbers[k] = helper[i]in merge()

我知道输入数组的内容很好,因为我在对其执行 MergeSort 之前打印出数组的内容。有谁知道问题是什么?

0 投票
1 回答
2633 浏览

c# - WinSCP .NET 程序集 - GetFiles 根目录非递归(无子目录)

我正在尝试从一个目录下载文件,而所需目录中没有其他目录。

我已经在互联网上搜索了答案,我发现的唯一方法是使用FileMask "|*/"in TransferOptions,它不起作用,并且什么也没有下载。

使用最新版本 (5.7.5)

0 投票
2 回答
1652 浏览

c - 用重复生成所有排列......在C中非递归

所以我想知道如何编写一个非递归函数来打印给定 N 和 r 的所有排列,其中r^N给出了排列的总数。

这是我尝试过的,但当然它只适用于一种情况:

0 投票
2 回答
80 浏览

java - 构造二叉树的无递归插入方法

我已经完成了递归插入功能,它工作得很好,但我无法让非递归解决方案工作。

} 然后递归的是:

有谁知道我做错了什么?我以为我得到了它,但现在它只返回我输入的第一个数字

0 投票
1 回答
392 浏览

c++ - 无法使用非递归中序方法遍历二叉树

我正在尝试遍历使用键盘输入数据构建的二叉树。数据成功插入二叉树。我有一个 switch 语句,其中“case 3”应该使用非递归中序遍历算法遍历(并打印)二叉树。但是,当调用“案例 3”时,它会给出 EXC_BAD_ACCESS 错误,这对我来说毫无意义。如果有人帮我解决这个问题,我会非常高兴。

(RootPtr 是全局定义的二叉树的顶级 0 节点;GetNodeS 基本上是用于 StackPtr 类型指针的初始化函数(使用 malloc)。)

谢谢大家。

以下是相关代码:

这些是结构定义,

这些是 Push 和 Pop 功能,

这是遍历函数,

这是我尝试调用迭代遍历函数的开关案例,