Using parallelism techniques to improve sequential and multi-core sorting performance
我们提出了新的顺序排序操作的适应技术和方法用于设计并行排序算法。虽然规范是并行化的顺序算法,以提高性能,我们采用了相反的方法:我们采用并行计算技术,以加快顺序排序。我们的方法也可以工作的多核排序与微小的调整,不一定需要完全并行化的原始顺序算法。所提出的方法导致渐近有效的确定性和随机排序操作的实际顺序和多核性能的发展,如实验研究所示,匹配或超越现有的优化排序算法实现。我们利用并行排序技术,如确定性定期采样和随机过采样。我们扩展的概念,确定性定期采样到确定性定期过采样的顺序和多核排序,并展示其潜力。然后,我们将展示如何将这些技术用于顺序排序,并导致更好的多核排序算法的性能所见证的实验研究。
2016-08-30 cs.DS
An efficient sorting algorithm - Ultimate Heapsort(UHS)
受计算机理论发展的推动,排序算法层出不穷。受减少和征服方法的启发,本文提出了一种新的排序算法--最终堆排序.该算法由两部分组成:建立堆和调整堆。通过对算法的渐近分析和实验分析,我们的算法在任何条件下的时间复杂度都可以达到O(nlogn)。而且,它的空间复杂度仅为O(1)。可以看出,我们的算法优于以往的所有算法。
2019-02-01 cs.DS
Efficient Algorithms for Sorting in Trees
排序是计算机科学中的一个基本问题,通常用于序列或全序。最近,在偏序集(或偏序集)上的一种更一般的排序形式被研究,其中一些元素对是不可比的。一般的偏序集排序算法的查询复杂度下限为$Ω(wn + n \log n)$,其中$w$是偏序集的宽度。我们考虑的问题,排序树,偏序的一个特殊情况下,参数化的复杂性,相对于$d$,树中的元素的最大程度,$d$通常是远远小于$w$在树上。例如,在完全二叉树中,$d = Θ(1), w = Θ(n)$。本文提出了一种在最坏情况下的期望$O(dn\log n)$查询和时间复杂度下对树偏序集进行排序的随机算法。这改进了先前的$O(dn \log^2 n)$的上界。我们的算法是第一个最佳的有界度树。我们还提供了一个新的下界的$Ω(dn + n \log n)$的最坏情况下的查询复杂度排序树偏序集。最后,我们提出了第一个确定性算法排序树偏序集,具有较低的总复杂度比现有的算法排序一般偏序。
2022-06-02 cs.DS
A Sorting Algorithm Based on Calculation
本文介绍了一种自适应排序算法,通过将元素的值代入一个函数(我们称之为猜测函数)中,可以准确地重新定位元素。我们着重于建立这个函数,它本质上是记录值和它们对应的排序位置之间的映射关系。当记录均匀分布时,该算法的时间复杂度为O(n)。另外,在搜索算法中可以使用类似的方法。
2005-08-29 cs.DS
An Agglomeration Law for Sorting Networks and its Application in Functional Programming
在本文中,我们将提出一个一般的凝聚法排序网络。聚合是设计并行程序时的常用技术,用于控制计算的粒度,从而在算法和算法运行的机器之间找到更好的匹配。通常,这是通过将较小的任务分组并在一个并行进程中整体计算它们来完成的。在排序网络的情况下,这可以通过用一个进程计算网络的更大部分来完成。本文中的凝聚法则追求一种不同的策略:将输入数据分组,并在保持算法原始结构的情况下将算法推广到凝聚输入。这将导致一个新的访问机会,排序网络非常适合在现代多核计算机,计算机网络或GPGPU编程的有效并行化。此外,这使我们能够使用排序网络作为任意排序算法的(并行或分布式)合并阶段,从而轻松创建新的混合排序算法。函数式程序设计语言的表达能力帮助我们将这一定律应用于系统构建的排序网络,从而产生高效且易于适应的排序算法。最后,用Eden程序设计语言给出了一个应用实例,说明了该方法的有效性。不同的并行排序算法的运行时行为的实现进行了比较。
2017-01-03 cs.DS
SquareSort: a cache-oblivious sorting algorithm
提出一种新的缓存无关排序算法SquareSort,其IO复杂度渐近最优,与FunnelSort相同,为$O(\frac{n}{B} \nlog_{M/B} n)$。
2024-07-20 cs.DS
Adaptive Shivers Sort: An Alternative Sorting Algorithm
我们提出了一个稳定的合并排序算法,称为\Adaptive颤抖排序,利用存在的单调运行有效地排序部分排序的数据。我们还证明,虽然该算法是简单的实现,其计算成本,在进行比较的数量,是最佳的一个小的添加剂线性项。
2020-09-08 cs.DS
Random Shuffling to Reduce Disorder in Adaptive Sorting Scheme
在本文中,我们提出了一个随机洗牌计划,适用于自适应排序算法。自适应排序算法利用给定序列中存在的预排序。我们通过使用一种几乎不需要计算的随机洗牌技术,在概率上增加了序列中存在的前序量。理论分析表明,该方案可以提高自适应排序的性能。实验结果表明,该算法能有效地减少给定序列中的无序度,提高自适应排序算法的执行时间。
2000-12-02 cs.DS
Apply Sorting Algorithms to FAST Problem
FAST问题是在竞赛图中寻找最小反馈弧集问题。在本文中,我们提出了一些算法,类似于排序算法的FAST问题,我们分析他们。本文提出了一种求解FAST问题的伪插入排序算法,并证明了该算法的平均后向边数等于((n^2- 5 n +8)/4)-2 ^(1-n).我们引入了伪归并排序算法,我们发现的概率是落后的边缘。最后,我们介绍了其他算法这个问题。
2019-10-15 cs.DS
Anytime Sorting Algorithms (Extended Version)
本文研究随时排序问题,提出让任意排序算法具备随时性的通用方法,推出multizip sort和Corsort两种新算法,经仿真验证性能优于现有方法,分别兼具低全局复杂度和更优中间估计效果的优势。
2024-05-14 cs.DS
ARC Sort: Enhanced and Time Efficient Sorting Algorithm
本文讨论了一种使用桶概念的排序算法,每个桶代表一定数量的数字。使用二维的数据结构,其中一维表示桶i。e;位数和每个桶的对应维度表示属于该桶的输入数字。然后,每个桶被单独排序。由于每个前面的桶元素总是小于后面的桶,因此不需要进行比较。通过这样做,我们可以显著降低任何用于对给定输入集进行排序的排序算法的时间复杂度。
2014-06-06 cs.DS
An Optimal Algorithm for Sorting Pattern-Avoiding Sequences
本研究提出一种确定性线性时间比较算法,可排序避免未知固定排列模式的序列,其乘法常数依赖匹配信息论下界,核心借助Marcus-Tardos定理实现高效多路合并,还推论得到有界孪生宽度排列的线性排序算法。
2024-09-12 cs.DS
An Enhanced Multiway Sorting Network Based on n-Sorters
基于归并的排序网络是一类重要的排序网络。大多数归并排序网络是基于2路或多路归并算法,使用2-排序器作为基本构建块。一种替代方案是使用n-排序器而不是2-排序器作为基本构建块,以便大大减少排序器的数量以及延迟。在改进Leighton列排序算法的基础上,提出了一种以n个排序器为基本构件的n路归并算法SS-Mk。在这项工作中,我们首先提出了一个新的多路合并算法与n-sorters作为基本构建块,合并n个排序列表的m个值,每个在1 + ceil(m/2)阶段(n <= m)。基于我们的合并算法,我们还提出了一个排序算法,它需要O(N log 2 N)的基本排序器排序N个输入。虽然我们的排序算法的渐近复杂性(在所需的排序器数量方面)与SS-Mk相同,但对于宽范围的N,我们的算法需要比SS-Mk更少的排序器。最后,我们考虑一个二进制排序网络,其中的基本排序器是在阈值逻辑和规模与输入的数量呈线性关系,并比较所需的门的数量方面的复杂性。对于宽范围的N,我们的算法需要更少的门比SS-Mk。
2014-07-03 cs.DS
An Improved Subsumption Testing Algorithm for the Optimal-Size Sorting Network Problem
本文提出了一种检验最优规模排序网络问题包含关系的新方法。新的方法是基于创建一个二分图和建模的包容测试的问题,枚举在这个图中的所有完美匹配。实验表明,在考虑包容检查的数量和找到最佳大小排序网络所需的时间时,与以前的方法相比有了显着的改进。我们能够为具有9个通道的比较器网络生成所有完整的滤波器集,从而确认25个比较器排序网络是最佳的。与最先进的结果相比,运行时间减少了10倍以上。
2017-07-27 cs.DS
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
A Grammar Compression Algorithm based on Induced Suffix Sorting
我们介绍GCIS,这是一种基于Nong等人在2009年提出的归纳后缀排序算法SAIS的语法压缩算法。我们的解决方案建立在SAIS在后缀排序期间执行的因子分解的基础上。我们构造了一个上下文无关文法的输入字符串,它可以进一步减少到一个较短的字符串,通过取代每个子串由其相应的因子。由此产生的语法编码通过探索一些冗余,如后缀规则之间的共同前缀,这是根据SAIS框架排序。当比较知名的压缩工具,如重新配对和7-zip,我们的算法是有竞争力的,非常有效地处理重复字符串的压缩比,压缩和解压缩运行时间。
2017-11-08 cs.DS
Sorting with Recurrent Comparison Errors
我们提出了一个排序算法的情况下,经常性的随机比较错误。该算法基本上实现了同时良好的性能,以前的算法排序$n$不同的元素在这个模型中。特别地,它在$O(n^2)$时间中运行,输出中元素的最大位错是$O(\log n)$,而总位错是$O(n)$。这些保证是最好的可能,因为我们证明,即使是随机算法不能实现$o(\log n)$最大错位的高概率,或$o(n)$总错位的期望,无论其运行时间。
2017-09-21 cs.DS
Generalized Sorting with Predictions
广义排序问题,也被称为禁止比较排序,最早由Huang等人提出,同时提出了一个需要$\tilde O(n^{3/2})$探针的随机算法。我们研究这个问题的额外预测作为输入的所有对允许的比较。我们提出了一个随机算法,它使用$O(n \log n+w)$探针具有高概率和一个确定性算法,它使用$O(nw)$探针,其中$w$是预测的错误数。
2020-10-31 cs.DS
Guidesort: Simpler Optimal Deterministic Sorting for the Parallel Disk Model
本文提出了一种新的排序算法--Guidesort,它是Vitter和Shriver的并行磁盘模型(PDM)的单处理机变体。该算法是确定性的,并执行多个(并行)I/O操作,这些操作在最佳值的恒定因子$C$内。该算法及其分析比以前的工作中提出的那些更简单,并且基本上为3的可实现的常数因子$C$似乎小于所有其他已知的确定性算法,至少对于合理的参数值。
2019-02-15 cs.DS
Hash sort: A linear time complexity multiple-dimensional sort algorithm
排序和散列是计算机科学中两个完全不同的概念,并且相互排斥。哈希是一种使用数据作为关键字来映射到内存中的位置的搜索方法,用于快速存储和检索。排序是将数据从随机排列组织成有序排列的过程,并且是在各种应用中频繁执行的常见活动。几乎所有传统的排序算法都是通过比较来工作的,并且在这样做的时候,算法时间复杂度有一个线性最大下限。排序算法的理论时间复杂度的任何改进都可能导致实现性能的整体更大增益。对于使用排序算法的应用程序来说,算法性能的提高会带来更大的速度提高。这种排序算法需要使用一种替代方法来对数据进行排序,而不是比较,以超过算法性能上的线性时间复杂度边界。散列排序是一种通用的基于散列的非比较排序算法,它具有一些传统排序算法所没有的有趣特性。散列排序的性能逐渐优于最快的传统排序算法快速排序。散列排序算法具有线性时间复杂度因子--即使在最坏的情况下也是如此。散列排序为进一步的工作和研究其他排序方法开辟了一个领域。
2004-08-17 cs.DS
QuickXsort: Efficient Sorting with n log n - 1.399n +o(n) Comparisons on Average
在本文中,我们推广的QuickHeapsort的想法导致QuickXsort的概念。给定一个外部排序算法X,如果X满足某些自然条件,QuickXsort会产生一个内部排序算法。对于QuickWeakHeapsort和QuickMergesort,我们给出了QuickXsort构造的两个示例。这两种算法都是有效的,平均产生大约n log n - 1.26n +o(n)次比较。最坏情况下的n log n + O(n)比较可以实现,而不会显着影响平均情况。此外,我们描述了一个实现的合并插入小n。以MergeInsertion为基础,建立了一个最坏情况下的排序算法,该算法平均需要进行n log n - 1.3999n + o(n)次比较.具有恒定大小基本情况的QuickMergesort在实际输入上表现出最好的性能:当对整数排序时,它只比STL-Introsort慢15%。
2013-07-11 cs.DS
Median Filtering is Equivalent to Sorting
这项工作表明,以下问题是等价的,无论是在理论上和实践中:-中值滤波:给定一个$n$元素向量,计算滑动窗口中值与窗口大小$k$,-分段排序:给定一个$n$元素向量,将其划分为$n/k$块的长度$k$和排序每个块。通过先前的工作,中值滤波至少与分段排序一样困难:通过单个中值滤波操作,我们可以对长度为$Θ(k)$的$Θ(n/k)$块进行排序。目前的工作表明,中值滤波也一样容易分段排序:我们可以做一个分段排序操作和线性时间后处理中值滤波。特别是,中值滤波可以直接受益于大量的文献排序算法-例如,自适应排序算法意味着自适应中值滤波算法。减少是非常有效的,在实践中-随机输入的新的排序为基础的算法的性能与最快的堆为基础的算法,并为良性的数据分布,它通常优于以前的算法。关键的技术思想是,我们可以用一对排序的双向链表来表示滑动窗口:我们从一个链表中删除项目,并向另一个链表中添加项目。删除很容易;如果我们把时间颠倒两次,就可以有效地完成添加:首先,我们构造完整的列表,然后以相反的顺序删除项目。然后我们用Knuth的跳舞链接技术来撤销每个删除。
2014-06-06 cs.DS
Generalized Leapfrogging Samplesort: A Class of $O(n \log^2 n)$ Worst-Case Complexity and $O(n \log n)$ Average-Case Complexity Sorting Algorithms
原始的蛙跳采样排序对大小为$s$的排序样本和大小为$s+1$的未排序部分进行操作。我们将其推广到大小为$s$的排序样本和大小为$(2^k-1)(s+1)$的未排序部分,其中$k = O(1)$。我们提出了这类算法的实际实现,我们表明,最坏情况下的复杂性是$O(n \log^2 n)$和平均情况下的复杂性是$O(n \log n)$。关键词:样本排序,快速排序,蛙跳样本排序,排序,算法分析。
2018-01-29 cs.DS
Sorting a Low-Entropy Sequence
我们给出了第一个具有高阶熵界的排序算法:设$S$是长度为$m$的序列,其中包含$n$不同的元素,(H_ \ell(S))是$S$的$\ell$阶经验熵,其中(n^{ \ell + 1} \log n \in O(m));我们的算法使用((H_ \ell(S)+ O(1))m)个比较对$S$进行排序。
2005-06-08 cs.DS
Zig-zag Sort: A Simple Deterministic Data-Oblivious Sorting Algorithm Running in O(n log n) Time
我们描述和分析曲折排序-一个确定性的数据不经意的排序算法运行在O(n log n)的时间,可以说是简单的比以前已知的算法具有类似的属性,这是基于AKS排序网络。因为它是数据不经意和确定性的,所以曲折排序可以实现为一个简单的O(n log n)大小的排序网络,从而为Incerpi和Sedgewick在1985年提出的一个开放问题提供了解决方案。此外,Zig-zag Sort是Shellsort的一个变体,实际上是第一个在O(n log n)时间内运行的确定性Shellsort变体。Plaxton等人在1992年和Sedgewick在1996年提出了这样一个算法的存在性问题。然而,与今天更相关的事实是,在O(n log n)时间内运行的简单数据不经意确定性排序算法的存在简化了几种提议的遗忘RAM模拟方法(其利用AKS排序网络)中的内部循环计算,并且这反过来意味着在几种云计算应用中用于隐私保护数据外包的简化机制。我们提供了曲折排序的建设性和非建设性的实现,基于被称为ε-halver的电路的存在,使得在我们的建设性实现中的常数因子比AKS排序网络的建设性变体的常数因子小几个数量级,AKS排序网络的建设性变体也基于ε-halver的使用。
2014-03-11 cs.DS
Quadratic Time Algorithms Appear to be Optimal for Sorting Evolving Data
我们实证研究排序在不断发展的数据模型。在这个模型中,排序算法保持数据项列表的排序顺序的近似值,同时,通过算法进行的每次比较,对手随机交换真实排序顺序中相邻项的顺序。以前的工作只研究了快速排序的两个版本,并且在Omega(n)的下界和O(nlog log n)的最佳上界之间存在差距。我们在本文中进行的实验提供了经验证据,一些二次时间算法,如插入排序和冒泡排序是渐近最优的任何常数率的随机交换。事实上,这些算法的性能与传统算法分析模型中更有效的算法(如快速排序)一样好或更好。
2018-05-14 cs.DS
Parallel Equivalence Class Sorting: Algorithms, Lower Bounds, and Distribution-Based Analysis
我们研究并行比较为基础的算法,找到所有等价类的一组$n$元素,根据一些总顺序排序是不可能的。这样的场景出现在例如分布式计算机安全的应用中,其中每个$n$代理正在工作以标识它们所属的私有组,其中它们可用的唯一操作是零知识成对比较(有时称为“秘密握手”),其仅揭示两个代理是在同一组中还是在不同组中。我们为这个问题提供了新的并行算法,以及新的下限和基于分布的分析。
2016-05-12 cs.DS
List Sort: A New Approach for Sorting List to Reduce Execution Time
本文提出了一种基于动态内存分配的排序算法--列表排序算法。在这项研究中,我们还展示了各种有效的排序技术与列表排序的比较。由于列表排序的动态特性,它比一些传统的比较排序技术快得多,可以与快速排序和合并排序相媲美。列表排序利用已经按升序或降序排序的数据。
2013-10-26 cs.DS
TSSort: Probabilistic Noise Resistant Sorting
在本文中,我们提出了TSSort,概率,抗噪声,快速收敛的比较排序算法的基础上,微软TrueSkill。该算法将TrueSkill的更新规则与新开发的下一个项目对选择策略相结合,使其能够击败标准排序算法w.r.t.收敛速度和抗噪声能力,如模拟所示。如果项目的比较是昂贵的或嘈杂的,或者如果中间结果应该近似排序,TSSort是有用的。
2016-06-16 cs.DS
Sorting and Selection in Rounds with Adversarial Comparisons
针对对抗比较器模型下的排序与选择问题,提出O(n log²n)次比较的高概率正确随机排序算法,解决了公开问题,还探究了多轮场景下精度、比较次数与轮数的权衡,给出了优于确定性下界的多轮选择算法。
2025-09-06 cs.DS
Scalable Distributed String Sorting
针对现有分布式字符串排序算法无法扩展到大规模并行机器的问题,提出延迟约为 $p^{1/k}$ 的高效算法,在多达 49152 个核心上实现高达 5 倍加速。
2024-04-25 cs.DS
Scalable String and Suffix Sorting: Algorithms, Techniques, and Tools
本文主要研究两个基本的排序问题:字符串排序和后缀排序。第一部分考虑共享内存多核机器上的并行字符串排序,第二部分使用归纳排序原理进行外部内存后缀排序,第三部分使用新的分布式算法大数据框架Thrill进行分布式外部内存后缀排序。
2018-08-02 cs.DC cs.DS
New Sorting Algorithm Wave Sort (W-Sort)
University of California, Davis(加州大学戴维斯分校)
波排序是一种新型原地排序算法,通过动态主元选择策略解决传统排序算法的性能问题,具有高效的比较复杂度和稳定的性能表现。
2026-01-04 cs.DS
Randomized Shellsort: A Simple Oblivious Sorting Algorithm
在本文中,我们描述了随机Shellsort-一个简单的,随机的,数据不经意的版本的Shellsort算法,总是运行在O(n log n)的时间,正如我们所示,成功地排序任何给定的输入置换具有非常高的概率。因此,随机化Shellsort同时是简单的,时间最优的和数据遗忘的。两者合计,这些属性意味着在设计新的高效的隐私保护计算的基础上的安全多方计算(SMC)范式的应用。此外,通过将这个蒙特卡洛算法简单地转换为它在拉斯维加斯的等价算法,可以得到第一个版本的Shellsort,其运行时间可以证明是O(n log n),并且具有很高的概率。
2010-08-04 cs.DS
Hybridizing Non-dominated Sorting Algorithms: Divide-and-Conquer Meets Best Order Sort
许多生产级算法受益于将用于解决大问题实例的渐进有效算法(通过将它们拆分为较小的问题实例)与用于解决小子问题的具有非常小的实现常数的渐进低效算法相结合。一个著名的例子是稳定排序,其中合并排序通常与插入排序相结合,以实现恒定但明显的速度提升。我们把这个想法应用到非支配排序中。也就是说,我们结合了分治算法,它具有目前最好的已知的渐近运行时间的$O(N (\log N)^{M - 1})$,与最佳顺序排序算法,它具有运行时间的$O(N^2 M)$,但展示了最好的实际性能的二次算法。经验评估表明,混合动力的运行时间通常不会比两个原始算法差,而对于大量的点,它优于他们至少20%。对于较少数量的目标,加速可以高达四倍。
2017-04-13 cs.DS
The Geometry of Tree-Based Sorting
该研究建立了BST模型与一大类排序算法的代价等价关系,利用BST的几何解释提出排列复杂度的对数交错界,还设计了对应并行排序算法并证明相关离线BST算法的存在性。
2023-05-04 cs.DS
An Answer to the Bose-Nelson Sorting Problem for 11 and 12 Channels
我们证明了11通道排序网络至少有35个比较器,12通道排序网络至少有39个比较器。这肯定地解决了《计算机编程艺术》第3卷中给出的相应排序网络的最优性,并关闭了Bose-Nelson排序问题的两个最小开放实例。我们通过将Van Voorhis的一个结果从排序网络推广到更一般的比较器网络来获得这些界。由此,我们推导出一个动态规划算法,该算法计算具有给定通道数的排序网络的最佳大小。从这个算法的执行,我们构造一个证书,其中包含相应的下限大小的派生,我们检查使用的程序正式验证使用的伊莎贝尔/HOL证明助手。
2022-07-24 cs.DS
SAT encodings for sorting networks, single-exception sorting networks and $ε-$halvers
排序网络是一种具有广泛实际应用和丰富理论性质的不经意排序算法。排序网络的命题编码是证明排序网络的最小比较器数或深度(并行步数)的具体界限的关键工具。在本文中,我们提出了新的SAT编码,减少变量和条款的最优性问题的排序约束的数量。此外,建议的SAT编码可以应用到更广泛的一类问题,如最佳的单例外排序网络和$ε-$ halves的搜索。我们得到的最优性结果的单例外排序网络上$n \le 10$的输入。
2018-07-14 cs.DS
Sorting with Asymmetric Read and Write Costs
新兴的存储器技术在写入存储器与从存储器读取的成本(在时间和能量两者上)之间具有显著的差距。在本文中,我们提出的模型和算法,占这种差异,重点是写效率排序算法。首先,我们考虑PRAM模型与非对称写成本,并表明,排序可以在$O\left(n\right)$写,$O\left(n \log n\right)$读,对数深度(并行时间)。接下来,我们考虑外部存储器(EM)模型的一个变体,该模型向$ω> 1$收取将大小为$B$的块写入到辅助存储器的费用,并提出三种EM排序算法(多路合并排序,样本排序和使用缓冲区树的堆排序)的变体,这些算法渐进地减少了原始算法的写入次数,并对每个块写入大致执行$ω$块读取。最后,我们定义了一个变种的理想缓存模型与不对称的写成本,并提出写效率高,缓存无关的并行算法排序,FFT和矩阵乘法。将工作窃取和并行深度优先缓存器的先验边界调整到非对称设置,这些分别为具有私有缓存或共享缓存的机器产生并行缓存复杂性边界。
2016-03-11 cs.DS
Stack Sorting with Increasing and Decreasing Stacks
我们介绍了一个排序机组成的$k+1$堆栈串联:第一个$k$堆栈只能包含元素从上到下的降序,而最后一个有相反的限制。该器械推广了研究病例$k=1$的\cite{SM}。在这里,我们证明了,对于$k=2$,可排序排列的集合是一个类的无限基,通过显式地找到一个反链的最小不可排序排列。这种结构可以很容易地适用于每个$k \ge 3$。接下来,我们描述一个最优排序算法,同样是针对$k=2$的情况。然后,我们分析了两种类型的左贪婪排序程序,在一种情况下,获得完整的结果,只有一些部分的结果在另一个。我们以讨论几个未决问题来结束这篇论文。
2019-10-08 cs.DM cs.DS math.CO
Sort Race
排序是最古老的计算问题之一,在大数据时代仍然非常重要。已经提出了各种算法和实现技术。在这项研究中,我们专注于比较为基础,内部排序算法。我们创建了12种不同大小的数据类型用于实验,并在单个设置中广泛测试了各种实现。使用一些有效的技术,我们发现快速排序是自适应的近排序的输入,仍然是最好的整体排序算法。我们还确定了哪些技术在timsort中有效,timsort是基于自然mergesort的最流行和最有效的排序方法之一,并创建了我们的mergesort版本,它在接近排序的实例上运行速度比timsort快。我们的quicksort和mergesort实现与所有教科书或研究文章中报道的其他实现不同,比任何版本的C库qsort函数都快,不仅适用于随机生成的数据,而且适用于各种类型的近似排序数据。这个实验可以帮助用户选择最好的排序算法来处理手头的困难排序工作。这项工作提供了一个平台,任何人都可以测试自己的排序算法对最好的领域。
2016-09-14 cs.DS
An Algorithm for Bichromatic Sorting with Polylog Competitive Ratio
针对双色排序这一长期未决的带代价排序问题,提出随机算法InversionSort,首次实现了高概率下接近最优的$O(\log^{3} N)$竞争比,突破了此前的线性竞争比水平。
2023-11-09 cs.DS
Stochastic and Worst-Case Generalized Sorting Revisited
\emph{generalized sorting problem}是标准比较排序的受限版本,我们希望对$n$元素进行排序,但只允许对的子集进行比较。形式上,在$n$元素$v_1, \dots, v_n$上存在某个已知图$G = (V, E)$,目标是使用尽可能少的比较来确定元素的真实顺序,其中所有比较$(v_i, v_j)$必须是$E$中的边。我们承诺,如果真正的排序是$x_1 < x_2 < \cdots < x_n$,对于$\{x_i\}$是顶点$\{v_i\}$的未知置换,那么对于所有$i$,则是$(x_i, x_{i+1}) \in E$:这个哈密顿路径确保排序实际上是可能的。在这项工作中,我们提高了随机图和最坏情况图的广义排序的界限。对于Erdens-Renyi随机图$G(n, p)$(添加承诺的Hamilton路径,以确保排序是可能的),我们提供了一个算法,广义排序与预期的$O(n \log (np))$比较,我们证明是最佳的查询复杂性。这大大改进了Huang,Kannan和Khanna(FOCS 2011)的最知名算法,该算法使用$\tilde{O}(\min(n \sqrt{np}, n/p^2))$比较。对于任意图$G$与$n$顶点和$m$边(再次承诺的哈密顿路径),我们提供了一个算法广义排序与$\tilde{O}(\sqrt{mn})$比较。这改进了Huang…
2021-11-14 cs.DS
Equivalence between Priority Queues and Sorting in External Memory
优先级队列是一种基本的数据结构,它维护一组动态有序的键,并支持以下基本操作:插入键、删除键和查找最小键。优先级队列的复杂性与排序的复杂性密切相关:优先级队列可以用来实现一个简单的排序算法。Thorup \cite{thorup2007equivalence}证明了在RAM模型中也是如此。特别是,他设计了一个优先级队列,使用排序算法作为黑盒,这样优先级队列的每个操作成本与排序的每个键成本渐近相同。在本文中,我们证明了一个类似的结果,在外部存储器模型,优先级队列是计算等价于排序在外部存储器中,在一些温和的假设。这种减少提供了一种可能性,证明下界的外部排序通过显示一个下界的优先级队列。
2012-07-18 cs.DS
Spin-the-bottle Sort and Annealing Sort: Oblivious Sorting via Round-robin Random Comparisons
我们研究基于随机循环比较的排序算法。具体来说,我们研究旋转瓶排序,其中比较是不受限制的,和退火排序,其中比较被限制到一个由\emph{temperature}参数界定的距离。这两种算法都是简单的,随机的,数据无关的排序算法,这是有用的隐私保护计算,但正如我们所示,退火排序是更有效的。我们表明,有一个输入置换,导致旋转瓶排序需要$Ω(n^2\log n)$预期的时间,以成功,并在$O(n^2\log n)$时间,该算法成功的概率很高的任何输入。我们还展示了退火排序的一个实现,它在$O(n\log n)$时间内运行,并且以非常高的概率成功。
2010-11-10 cs.DS
K-sort: A new sorting algorithm that beats Heap sort for n <= 70 lakhs!
Sundararajan和Chakraborty(2007)引入了一个新版本的快速排序,删除了交换。Khreisat(2007)发现这个算法与其他版本的快速排序竞争得很好。然而,它使用辅助阵列,从而增加了空间复杂度。在这里,我们提供了新排序的第二个版本,其中我们删除了辅助数组。这个算法的第二个改进版本,我们称之为K-sort,发现对于均匀U[0,1]输入的相当大的数组大小(n <= 70,00,000),排序元素的速度比堆排序快。
2011-07-19 cs.DS
Adaptive Sorting, also in the BST Model
IT University of Copenhagen(哥本哈根工业大学);Institute of Science and Technology Austria (ISTA)(奥地利科学技术研究所)
本文完善了自适应排序熵度量的关系层级,提出BST模型下的SproutSort和SkeletonSort两种reg自适应排序算法,达到该模型迄今最优的自适应性并简化了实现。
2026-10-14 cs.DS
On Instance-Optimal Algorithms for a Generalization of Nuts and Bolts and Generalized Sorting
本文推广螺母螺栓问题提出二分排序,采用基于邻域的实例最优定义,给出接近最优的随机算法,并进一步推广到DAG排序,推翻了带代价信息排序的一个潜在下界。
2024-07-15 cs.DS
QR Sort: A Novel Non-Comparative Sorting Algorithm
本文提出QR Sort,一种基于商余定理与计数排序的非比较整数排序算法,通过设定参数实现线性时间复杂度,并在大范围输入序列上优于既有算法。
2024-11-12 cs.DS
Deep Learning Service for Efficient Data Distribution Aware Sorting
本研究提出名为NN-sort的神经网络数据分布感知排序方法,将其作为深度学习服务,通过学习数据分布映射大规模数据为有序序列,在合成与真实数据集上实现2.18倍至10倍于传统排序算法的性能提升。
2024-12-13 cs.DS
Defeating duplicates: A re-design of the LearnedSort algorithm
LearnedSort是一种新的排序算法,与传统方法不同,它使用快速ML模型来提高排序速度。模型学习估计输入的分布,并通过预测其经验累积分布函数(eCDF)值来按排序顺序排列键。与最先进的排序算法相比,LearnedSort在几个数据集上表现出了出色的性能,无论是合成的还是真实的。然而,考虑到eCDF模型的性质,当输入数据包含大量重复密钥(即,重复)。这项工作深入分析了这种情况,并介绍了LearnedSort 2.0:算法的重新设计,解决了这个问题,使算法保持领先优势,即使是高重复输入。我们对大量不同数据集的广泛基准测试表明,新设计的排序率比原始版本高得多:高重复数据集平均提高4.78倍,低重复数据集平均提高1.60倍,同时在排序算法中处于领先地位。
2021-07-05 cs.DS
Faster Prefix-Sorting Algorithms for Deterministic Finite Automata
本文研究DFA的最小宽度偏反词典序计算,利用新组合性质提出任意DFA的$O(mn)$、$O(n^2\log n)$排序算法及无环DFA的$O(m\log n)$算法,并验证其实用性。
2023-04-21 cs.DS
How to Sort in a Refrigerator: Simple Entropy-Sensitive Strictly In-Place Sorting Algorithms
University of California, Irvine(加州大学尔湾分校)
本文提出了一种基于熵的严格原地排序算法,通过简单的方法实现高效的排序,适用于内存受限的嵌入式系统。
2026-03-05 cs.DS
QuickXsort - A Fast Sorting Scheme in Theory and Practice
QuickXsort是一种高效的就地顺序排序方案,它将Hoare的Quicksort算法与X混合在一起,其中X可以从更广泛的其他已知排序算法中选择,如Heapsort,Insertionsort和Mergesort。它的主要优点是QuickXsort可以在X没有的情况下就位。在这项工作中,我们提供了一般的转移定理表示的比较的QuickXsort的X的数量的比较。更具体地说,如果选择枢轴作为(不太快)增长大小样本的中位数,则QuickXsort和X的平均比较次数仅相差$o(n)$项。对于某些常数$k$的$k$的中值主元选择,差是一个线性项,我们精确计算其系数。例如,三个QuickMergesort的中位数最多使用$n \lg n - 0.8358n + O(\log n)$比较。此外,我们还研究了使用更少比较的其他算法对基本情况进行排序的可能性。通过这样做,比较的平均情况数量可以减少到$n \lg n- 1.4106n + o(n)$,剩余的间隙仅为$0.0321n$与已知下限的比较(同时总体上仅使用$O(\log n)$额外空间和$O(n \log n)$时间)。这些排序策略的实现表明,这些算法挑战了成熟的库实现,如Musser的Introsort。
2018-11-03 cs.DS