递归与非递归排序算法

5

请问有人可以用英语解释非递归和递归排序算法实现的区别吗?

3个回答

6
请注意:任何递归算法都可以作为迭代算法实现,反之亦然(请查看此 帖子)。迭代或递归——这只是一种实现细节;尽管根据选择,它可能会对性能产生重大影响,但算法仍将是相同的。

2
递归排序算法通过将输入拆分为两个或更多较小的输入,然后对这些输入进行排序,最后合并结果来工作。 归并排序快速排序 是递归排序算法的示例。
非递归技术是指不使用递归的任何技术。 插入排序 是非递归排序算法的简单示例。

2
这基本上是正确的,所以我不会给它点踩,但任何递归算法,无论是排序还是其他,都可以转化为非递归(即迭代)算法。 - lordcheeto
插入排序也可以递归实现。这里有一个例子:http://www.geeksforgeeks.org/recursive-insertion-sort/ - p_sutherland

0

递归排序算法调用自身来对数组的一部分进行排序,然后将部分排序结果组合起来。快速排序是一个例子。

非递归算法一次性完成排序,而不调用自身。冒泡排序是非递归算法的一个例子。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接