gpt4 book ai didi

algorithm - Franceschini 方法如何运作?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:28:46 26 4
gpt4 key购买 nike

它在 Wikipedia 上提到该方法在 O(n log n) 时间内对数组进行排序,但它也是稳定且就地的。这听起来像是一个非常好的排序算法,因为没有其他排序算法一次完成所有这些(Insertion Sort 不是 O(n log n),Heap Sort 不稳定,Quicksort(或 Introsort)是'不是就位或稳定,Mergesort 不就位)。然而,在维基百科上只提到了它的名字,没有提到其他任何东西。作为引用,它转到 Franceschini, Gianni (1 June 2007) . “通过 O(n log n) 比较和 O(n) 移动,稳定地就地排序”。计算系统理论 40 (4):327–353。然而,这并不能真正解释它实际上是如何工作的,它更多地说明了它存在的原因。

我的问题是这种方法是如何工作的(它实际执行哪些步骤),以及为什么与它相关的资源如此之少,考虑到没有其他已知的 O(n log n) 稳定就地排序方法。

最佳答案

considering there are no other known O(n log n) stable in-place methods of sorting.

sufficiently easyO(log n) 额外空间就地实现合并排序,我想这在实践中已经足够接近了。

事实上,一个合并排序变体,它是稳定的并且只使用O(1) 额外内存:"Practical in-place mergesort" by Katajainen, Pasanen and Teuhola .它有一个最佳的 O(n log n) 运行时间,但它不是最佳的,因为它使用 Ω(n log n) 元素移动操作,当它可以完成时O(n) 由 Franceschini 论文证明。

它的运行速度似乎比传统的归并排序慢,但幅度不大。相比之下,Franceschini 版本似乎要复杂得多,并且具有巨大的常量开销。

关于algorithm - Franceschini 方法如何运作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22390951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com