An In-Place Sorting with O(n log n) Comparisons and O(n) Moves
我们提出的第一个就地算法排序的大小为n的数组,执行,在最坏的情况下,最多O(n log n)的元素比较和O(n)的元素传输。这解决了一个长期存在的公开问题,明确指出,例如,在[J. I. Munro和V. Raman,Sorting with minimum data movement,J. Algorithms,13,374-93,1992],是否存在同时匹配所有计算资源上的渐近下界的排序算法。
2003-05-09 cs.CC cs.DS
New Sorting Algorithm Wave Sort (W-Sort)
University of California, Davis(加州大学戴维斯分校)
波排序是一种新型原地排序算法,通过动态主元选择策略解决传统排序算法的性能问题,具有高效的比较复杂度和稳定的性能表现。
2026-01-04 cs.DS
Optimal In-Place Suffix Sorting
后缀数组是许多涉及字符串搜索和数据压缩的应用程序的基本数据结构。在过去的20年里,设计时间/空间有效的后缀阵列构造算法引起了人们的极大关注,并取得了相当大的进展。我们得到的\emph{first}在位后缀数组的建设算法,是最佳的时间和空间(只读)整数字母表。具体而言,本文做出了以下贡献:1.对于整数字母表,我们得到了第一个后缀排序算法,它需要线性时间,只使用$O(1)$工作空间(工作空间是输入字符串和输出后缀数组之外所需的总空间)。输入字符串可以在算法执行期间被修改,但是应该在算法终止时被恢复。2.我们通过为只读整数字母表提供第一个就地线性时间算法来加强第一个结果,该算法具有$|Σ|=O(n)$(即,不能修改输入字符串)。该算法解决了Franceschini和Muthukrishnan在ICALP 2007中提出的公开问题。开放性问题要求在$o(n\log n)$时间内设计就地算法,并最终在$O(n)$时间内使用$|Σ| \leq n$设计(只读)整数字母表。我们的结果实际上稍微强一些,因为我们允许$|Σ|=O(n)$。3.此外,对于只读通用字母表(即,只允许比较),我们提出了一个最优的原地$O(n\log n)$时间后缀排序算法,恢复了Manzini和Ferragina在ESA 2002中提出的一个公开问题Franceschini和Muthukrishnan的结果.
2018-11-09 cs.DS
Near-Optimal In-Place Sorting
该研究提出首个基于比较的原地排序算法,以指数级高概率实现n元素数组的n lg n + O(n)次比较与O(n)次移动排序,还改进了最坏情况算法,借助新型有序集合结构缩小了最小移动量原地排序的差距。
2026-07-30 cs.DS
Selection in the Presence of Memory Faults, with Applications to In-place Resilient Sorting
在大小为$n$的未排序数组中寻找$k^{th}$最小元素的选择问题是计算机科学研究的基本问题之一。这项工作的主要重点是设计算法来解决存在内存故障的选择问题。这些可能是宇宙射线、阿尔法粒子或硬件故障的结果。具体来说,这里假设的计算模型是由Finocchi和Italiano引入的RAM模型(简称FRAM)的错误变体。在该模型中,存储单元的内容可能在执行期间被逆向地损坏,并且该算法被给予关于可能发生的损坏的数量的上限$δ$。这项工作的主要贡献是一个确定性的弹性选择算法的最佳O(n)最坏情况下的运行时间。有趣的是,运行时间不依赖于故障的数量,并且算法不需要知道$δ$。上述弹性选择算法可用于改进由Gieseke、Moruz和Vasperhold开发的弹性$k$ -d树的复杂度界限。具体地说,构造$k$ -d树的时间复杂度从$O(n\log^2 n + δ^2)$提高到$O(n \log n)$ .在确定性算法的基础上,提出了一种随机弹性选择算法,该算法比确定性算法简单,具有$O(n + α)$期望的时间复杂度和O(1)空间复杂度(即,已到位)。该算法用于开发第一个弹性排序算法,该算法在适当的位置并实现最佳的$O(n\log n + αδ)$预期运行时间。
2012-08-28 cs.DS
Towards Parallel Learned Sorting
我们介绍了一种新的排序算法,即ML增强排序与原地超级标量样本排序(IPS4o)的组合。我们的工作的主要贡献是实现并行ML增强排序,因为以前的算法仅限于顺序实现。我们介绍了就地并行学习排序(IPLS)算法,并广泛比较它对其他排序方法。IPLS将IPS4o框架与使用最快最小冲突度算法训练的线性模型相结合,以划分数据。实验结果并没有证明IPLS是最快的算法。然而,他们确实表明IPLS在同行中具有竞争力,并且使用IPS4o框架是一种有前途的并行学习排序方法。
2022-08-14 cs.DC cs.DS
Cache Analysis of Non-uniform Distribution Sorting Algorithms
我们分析了平均情况下的缓存性能的分布排序算法的情况下,键是独立的,但不一定均匀分布。该分析适用于“就地”和“不就地”分布排序算法,比\cite{RRESA00}中的分析更准确。特别是,这种新的分析产生更严格的上限和下限时,从一个均匀分布的密钥。当整数排序算法MSB基数排序用于对独立均匀浮点数(浮点数)进行排序时,我们使用此分析来调整其性能。当从$[0, 1)$中对均匀浮点数进行排序时,我们的优化MSB基数排序算法轻松地优于缓存优化的桶排序\cite{RR99}和快速排序实现。
2007-08-13 cs.DS cs.PF
Radix Sorting With No Extra Space
在RAM模型中,使用基数排序可以在O(n)时间内对范围[1,n ^c]中的n个整数进行排序。一般来说,任何范围[1,U]内的整数都可以在O(n sqrt{loglog n})时间内排序。但是,这些算法使用O(n)字的额外内存。有这个必要吗?我们提出了一个简单的,稳定的,整数排序算法的大小为O(log n)的字,它的工作时间为O(n),只使用O(1)字的额外内存的RAM模型。这是整数排序在实践中最有用的情况。我们将这个结果推广到了密钥是只读的情况,这是一个有理论意义的结果。另一个有趣的问题是任意c的情况。在这里,我们提出了一个黑盒转换从任何RAM排序算法的排序算法,只使用O(1)的额外空间,并具有相同的运行时间。这就解决了就地排序的复杂性。
2007-06-27 cs.DS
In-Place Sparse Suffix Sorting
后缀数组对文本中所有后缀的词典顺序进行编码,并且通常与最长公共前缀数组(LCP)结合使用,以在减少的空间中模拟后缀树上的导航查询。在诸如稀疏和压缩文本索引之类的空间关键型应用中,通常仅需要关于所有$n$文本后缀的大小$b$子集的词典顺序的信息。这样的信息可以空间有效地(以$b$字)存储在稀疏后缀阵列(SSA)中。SSA及其相关的稀疏LCP阵列(SLCP)可以作为稀疏后缀树的空间有效的替代品。最近,Gawrychowski和Kociumaka [SODA 2017]表明,稀疏后缀树(因此SSA和SLCP)可以在渐近最优的$O(b)$空间中构建,蒙特卡罗算法在$O(n)$时间内运行。然而,使用SSA和SLCP数组代替稀疏后缀树的主要原因是它们各自减少了$b$字的空间。这自然导致了对构建这些数组的就地算法的追求。Franceschini和Muthukrishnan [ICALP 2007]表明,可以在最佳运行时间内就地内置的完整的后缀数组。另一方面,几十年来,为后缀的\emph{general}子集找到用于构建SSA和SLCP的次二次原地算法一直是一项难以捉摸的任务。在本文中,我们给出了这个问题的第一个解决方案。我们提供了在$O(n\log n)$预期时间内构建完整LCP阵列的第一个就地算法和在$O(n + b\log^2 n)$预期时间内构建SSA和SLCP的第一个Monte Carl…
2017-11-01 cs.DS
Decision Sort and its Parallel Implementation
在本文中,排序技术,作为输入的数据集的主键码域是已知的排序算法,并与O(n+k)的时间效率,其中k是主键码域。结果表明,该算法具有广泛的数据集的适用性。后来,提出了一个平行的制定相同的,其有效性进行了论证。虽然该算法适用于广泛的一般数据集,它发现特殊的应用(比其他人更优越)的地方,排序信息到达的部分和情况下,输入数据是巨大的。
2005-05-24 cs.DS
Naively Sorting Evolving Data is Optimal and Robust
研究演化数据模型中的排序问题,证明朴素相邻交换排序算法在一般扰动分布和平均演化步数有界条件下,能以高概率实现最优总偏差和最大偏差,解决了先前开放问题。
2024-09-22 cs.DS
Bidirectional Conditional Insertion Sort algorithm; An efficient progress on the classical insertion sort
本文提出了一种新的基于插入排序概念的高效排序算法。该算法被称为双向条件插入排序(BCIS)。它是原地排序算法,与经典的插入排序(IS)相比,它具有显著的有效的平均情况下的时间复杂度。通过比较我们提出的新算法与快速排序算法,BCIS表示更快的平均情况下,相对较小的大小数组高达1500个元素。此外,BCIS被观察到比Quicksort更快,即使对于大尺寸的数组,在高重复元素率。
2016-08-12 cs.DS
Optimal High Probability Bounds for Random Order Online Sorting
Seoul National University(首尔大学)
该研究针对随机顺序在线排序问题,证明最优最坏情况竞争比为Θ(log n),提出的在线算法可实现O(log n)高概率竞争比,且不存在能改进该对数依赖的随机在线算法。
2026-10-14 cs.DS
BlockQuicksort: How Branch Mispredictions don't affect Quicksort
自Kaligosi和Sanders(2006)的工作以来,众所周知,Quicksort-通常被认为是最快的就地排序算法之一-在本质上受到分支错误预测的影响。我们提出了一种新的方法来解决这个问题,通过部分解耦控制从数据流:为了执行分区,我们分裂的输入块的恒定大小(我们建议128个数据元素),然后,在一个块中的所有元素与枢轴和比较的结果存储在一个缓冲区。在第二遍中,重新布置相应的元件。通过这样做,我们完全避免了基于比较结果的条件分支(除了最后的Insertionsort)。此外,我们证明,对于静态分支预测的分支误预测的平均总数是最多$εn \log n + O(n)$一些小的$ε$取决于块大小排序时,$n$元素。我们的实验结果是有希望的:当对随机整数数据进行排序时,我们实现了比C++ std::sort的GCC实现速度提高80%。对于许多其他类型的数据和非随机输入,仍然比std::sort有显著的加速。只有在少数特殊情况下,如排序或几乎排序的输入,std::sort可以击败实现。此外,即使在随机输入排列上,我们的实现甚至比高度调优的Super Scalar Sample Sort的实现稍快,后者使用线性量的额外空间。
2016-06-23 cs.DS
In-Place Parallel-Partition Algorithms using Exclusive-Read-and-Write Memory
我们提出了一个就地算法的划分问题,具有线性工作和多对数跨度。该算法仅使用独占读/写共享变量,并且可以使用并行循环来实现,而无需任何额外的并发考虑(即,算法是EREW)。该算法的一个关键特征是,它表现出可证明的最佳缓存行为,小顺序的因素。我们还提出了第二个就地EREW算法的分区问题,具有线性的工作和跨度$O(\log n \cdot \log \log n)$,这是一个$O(\log\log n)$因素的最佳跨度。通过使用这种低跨度算法作为缓存友好算法内的子程序,我们能够获得一个单一的EREW算法,结合他们的理论保证:该算法实现跨度$O(\log n \cdot \log \log n)$和最佳的缓存行为。作为直接的结果,我们也得到了一个就地EREW快速排序算法,其工作为$O(n \log n)$,span $O(\log^2 n \cdot \log \log n)$。而标准EREW算法的并行分区是内存带宽限制在大量的核心,我们的高速缓存友好的算法是能够实现接近理想的规模在实践中,通过避免内存带宽瓶颈。该算法的性能与Francis,Pannan,Frias和Petit的Blocked Strided算法相当,这是并行EREW排序算法的先前最先进的技术,但缺乏对其跨度和缓存行为的理论保证。
2020-07-08 cs.DS
Virtual-Memory Powersort
Philipps-Universität Marburg(马尔堡菲利普大学);University of Liverpool(利物浦大学)
提出一种自适应归并排序的改进版本——虚拟内存Powersort,通过内部缓冲技术将内存消耗从n/2个对象降至O(√(n log n))个对象,同时保持与原始Powersort几乎相同的移动和比较次数,实验表明在多数场景下可实现几乎原地稳定排序且开销可忽略。
2026-07-09 cs.DS cs.PF
Parallel $\mathcal O(\sqrt n)$ Overhead LSD Radix Sort
Zuse Institute Berlin(柏林齐泽研究所)
提出LSD基数排序变体Radsort,用 $\mathcal O(\sqrt n)$ 额外空间排序,具有稳定、实现简单且易并行化的特点,在处理超过约2MiB大小数组时优于传统非原位LSD基数排序。
2026-07-07 cs.DB cs.DS
FractalSortCPU: Bandwidth-Efficient Compressed Radix Sort on CPU
University of Toronto(多伦多大学);Eonforge Labs(Eonforge实验室)
本文提出FractalSortCPU,通过CPU适配的直方图压缩方案,实现任意精度键值的高效基数排序,降低直方图增长,提升带宽效率,适用于大规模数据集。
2026-05-12 cs.DC cs.DS