16得票3回答
关于数组中的原地合并

我看到了以下问题。 给定一个包含n个元素和一个整数k,其中k<n。已经排好序的元素{a0...ak}和 {ak+1...an}。请提供一种时间复杂度为O(n),空间复杂度为O(1)的算法进行排序。 在我看来,似乎无法以O(n)时间复杂度和O(1)空间复杂度完成此任务。实际上,这个问题...

16得票3回答
合并排序的空间要求

我正在尝试理解Mergesort在O(n)的空间要求。 我知道时间要求基本上是层数(logn) * merge(n),因此为(n log n)。 现在,我们仍然在每个级别中分配n个元素,在2个不同的数组中,即左侧和右侧。 我确实明白这里的关键是当递归函数返回时,空间得到释放,但我还没有看到它太...

15得票1回答
对于输入大小为n,哪些n值下插入排序会胜过归并排序?

在《算法导论》(Corman)一书中,练习1.2-2提出了关于比较插入排序和归并排序实现的问题。对于输入大小为n,插入排序运行了8n^2次步骤,而归并排序运行了64n lg n次步骤; 对于哪些n值,插入排序能够击败归并排序? 虽然我对答案很感兴趣,但我更想知道如何逐步找到答案(以便我可以重...

14得票4回答
归并排序 - 自底向上比自顶向下更快吗?

我一直在阅读Sedgewick和Wayne的《算法第四版》,并且在这个过程中使用JavaScript实现了讨论到的算法。 最近,我使用书中提供的归并排序示例来比较自顶向下和自底向上的方法……但是我发现自底向上的速度更快(我想)。请参阅我在博客上的分析。 - http://www.akaw...

14得票2回答
外部排序

在这个网页中:CS302 --- 外部排序 合并结果运行成为逐渐变大的运行,直到文件排序完毕。正如我引用的那样,我们如何将这些结果运行合并在一起?我们没有那么多的内存。

14得票1回答
快速排序和归并排序对内存中适合的顺序数据与慢速访问磁盘上的顺序数据的性能比较。

以下引用来自Wikipedia Merge Sort页面的“与其他排序算法比较”部分: 在典型的现代架构中,高效的快速排序实现通常优于归并排序以对RAM-based数组进行排序。[需要引证]另一方面,归并排序是一种稳定的排序方法,更有效地处理难以访问的连续媒体。 我的问题: 如果要排序...

13得票7回答
在C++中作为参数传递数组

我正在编写一个归并排序函数,目前我只是使用了一个测试用例数组(没有输入 - 目前是静态的)。我不知道如何将数组作为参数传递。这是我的代码: //merge sort first attempt #include <iostream> #include <algorith...

13得票1回答
Python分段错误?

我运行代码时出现了 Segmentation Fault: 11 错误,但我不知道为什么。 在深入解释之前,这是我的代码:import numpy.random as nprnd import heapq import sys sys.setrecursionlimit(10**6) ...

13得票2回答
链表的冒泡排序算法

我编写了一个冒泡排序算法来对链表进行排序。我是Java的初学者,正在尝试学习数据结构。我很困惑为什么我的第二个元素没有被正确地排序。class SListNode { Object item; SListNode next; SListNode(Object obj)...

13得票5回答
如何从《算法导论》(Cormen and Co.著)中实现归并排序

我正在从Cormen和他的合著者学习算法,但在尝试实现他们伪代码中的归并排序时遇到了问题。我已经编译了它:$ gcc -Wall -g merge_sort.c 我有一个问题,涉及数字:2 4 5 7 1 2 3 6 结果是:1 2 2 3 3 4 5 5 我仔细阅读了伪代码,但这并没有帮助...