Smart Sort: Design and Analysis of a Fast, Efficient and Robust Comparison Based Internal Sort Algorithm
智能排序算法是将堆构造过程(堆排序算法)“智能”融合到常规“分区”功能(快速排序算法)中,从而产生快速排序算法的健壮版本。我们还对我们提出的算法的平均情况行为进行了实证分析,并对最佳和最差情况进行了必要的理论分析。它的性能针对一些标准的概率分布进行了检查,包括均匀和非均匀分布,如二项式,泊松,离散和连续均匀,指数和标准正态分布。分析显示出所需的鲁棒性,再加上我们的算法的优良性能。虽然本文假设的静态分割比,其动态版本预计将产生更好的结果。
2012-04-23 cs.DS
Quick(er)sort and optimal adaptivity
IIIT Delhi(德里信息科学与技术研究所)
本文提出一种超越仅依赖输入规模的最坏情况最优性新范式,引入问题相关参数,并基于新的有序性度量设计出基于划分排序的最优算法。
2026-10-05 cs.CC cs.DS
The Power of the Score Sequence of a Tournament
Tennessee Tech University(田纳西科技大学);Harvard University(哈佛大学);University of Birmingham(伯明翰大学)
研究仅依据锦标赛得分序列能解决的问题,给出统一框架,利用入度解决多种问题,刻画了由入度信息决定的问题类,还得到相关算法,部分算法达最优界,部分改进了技术水平。
2026-08-18 cs.DS
Sort Race
排序是最古老的计算问题之一,在大数据时代仍然非常重要。已经提出了各种算法和实现技术。在这项研究中,我们专注于比较为基础,内部排序算法。我们创建了12种不同大小的数据类型用于实验,并在单个设置中广泛测试了各种实现。使用一些有效的技术,我们发现快速排序是自适应的近排序的输入,仍然是最好的整体排序算法。我们还确定了哪些技术在timsort中有效,timsort是基于自然mergesort的最流行和最有效的排序方法之一,并创建了我们的mergesort版本,它在接近排序的实例上运行速度比timsort快。我们的quicksort和mergesort实现与所有教科书或研究文章中报道的其他实现不同,比任何版本的C库qsort函数都快,不仅适用于随机生成的数据,而且适用于各种类型的近似排序数据。这个实验可以帮助用户选择最好的排序算法来处理手头的困难排序工作。这项工作提供了一个平台,任何人都可以测试自己的排序算法对最好的领域。
2016-09-14 cs.DS
List Sort: A New Approach for Sorting List to Reduce Execution Time
本文提出了一种基于动态内存分配的排序算法--列表排序算法。在这项研究中,我们还展示了各种有效的排序技术与列表排序的比较。由于列表排序的动态特性,它比一些传统的比较排序技术快得多,可以与快速排序和合并排序相媲美。列表排序利用已经按升序或降序排序的数据。
2013-10-26 cs.DS
New Sorting Algorithm Wave Sort (W-Sort)
University of California, Davis(加州大学戴维斯分校)
波排序是一种新型原地排序算法,通过动态主元选择策略解决传统排序算法的性能问题,具有高效的比较复杂度和稳定的性能表现。
2026-01-04 cs.DS
Comparison of Bucket Sort and RADIX Sort
桶排序和RADIX排序是两个著名的整数排序算法。本文以经验的方法测量了不同类型的输入序列的时间消耗和内存消耗。这些算法既从理论的角度进行了比较,也从使用随机数字序列的六种不同用例中进行了比较。这些测量提供了关于它们在不同现实生活情况下的表现的数据。我们发现桶排序比RADIX排序更快,但是桶排序在大多数情况下使用更多的内存。排序算法对较小的整数执行得更快。对于已经排序的输入,RADIX排序并不快,但是桶排序快。
2012-06-15 cs.DS
GPU sample sort
在本文中,我们提出了一个示例排序算法的设计,为众核GPU。尽管是分布式内存架构中最有效的基于比较的排序算法之一,但它在GPU上的性能以前是未知的。对于均匀分布的键,我们的样本排序比最好的基于比较的排序算法GPU Thrust merge sort至少快25%,平均快68%,平均比GPU quicksort快2倍以上。此外,对于64位整数键,它至少比直接操作键的二进制表示的高度优化的GPU推力基数排序快63%,平均快2倍。我们的实现对不同的密钥分布和熵水平具有鲁棒性,并且几乎与输入大小呈线性关系。这些结果表明,多路技术,特别是样本排序,实现了更好的性能比双向归并排序和快速排序。
2009-09-30 cs.DC cs.DS
Symmetry Partition Sort
在本文中,我们提出了一个有用的替代快速排序风格的效用函数。这种替换被称为对称划分排序,它与比例扩展排序的原理基本相同。它们之间的最大区别是,新算法在进入分区例程时总是将已经部分排序的输入(用作比例扩展的基础)放在两端。这有利于加速分区例程。基于新算法的库函数比2004年引入的Psort库函数更有吸引力。其实现机制简单。源代码更清晰。时间复杂度为O(n),时间复杂度为O(n)。鲁棒性和自适应性均较好。作为图书馆的一项职能,它具有竞争力。
2007-06-01 cs.DS
Partition Sort Revisited: Reconfirming the Robustness in Average Case and much more!
在我们之前的工作中,有一些迹象表明分区排序可能比流行的快速排序具有更强大的平均情况O(nlogn)复杂度。在本文的第一项研究中,我们通过计算机实验重新确认了这一点,从柯西分布的期望理论上不存在的输入。此外,该算法被发现是敏感的输入概率分布的参数,需要进一步研究参数化的复杂性。在我们的第二项研究中,该算法对二项式输入的结果在这个方向上非常令人鼓舞。
2012-03-27 cs.DS
Parallel String Sample Sort
我们讨论如何字符串排序算法可以在现代多核共享内存机器上并行化。作为对原子对象的最佳顺序字符串排序算法和成功的并行排序算法的综合,我们提出了字符串样本排序。该算法有效地利用了存储层次结构,使用额外的字级并行,并在很大程度上避免了分支误预测。此外,我们并行化多键快速排序和基数排序的变体,这些变体在某些情况下也很有用。
2013-05-06 cs.DC cs.DS
Hash sort: A linear time complexity multiple-dimensional sort algorithm
排序和散列是计算机科学中两个完全不同的概念,并且相互排斥。哈希是一种使用数据作为关键字来映射到内存中的位置的搜索方法,用于快速存储和检索。排序是将数据从随机排列组织成有序排列的过程,并且是在各种应用中频繁执行的常见活动。几乎所有传统的排序算法都是通过比较来工作的,并且在这样做的时候,算法时间复杂度有一个线性最大下限。排序算法的理论时间复杂度的任何改进都可能导致实现性能的整体更大增益。对于使用排序算法的应用程序来说,算法性能的提高会带来更大的速度提高。这种排序算法需要使用一种替代方法来对数据进行排序,而不是比较,以超过算法性能上的线性时间复杂度边界。散列排序是一种通用的基于散列的非比较排序算法,它具有一些传统排序算法所没有的有趣特性。散列排序的性能逐渐优于最快的传统排序算法快速排序。散列排序算法具有线性时间复杂度因子--即使在最坏的情况下也是如此。散列排序为进一步的工作和研究其他排序方法开辟了一个领域。
2004-08-17 cs.DS
Monte Carlo Sort for unreliable human comparisons
University of Cambridge(剑桥大学);babylon health(巴比伦健康公司);ASI Data Science(ASI数据科学公司)
将实数列表按升序排序的算法已经研究了几十年。它们通常基于一系列成对比较,并完全在芯片上运行。然而,人们通常会根据主观或复杂的判断对列表进行排序,而这些判断无法自动化。例子包括市场调研;调查用于了解客户对产品的偏好,招聘过程;面试官试图对潜在员工进行排名,以及体育比赛;我们从一系列一对一的比赛中推断团队排名。我们开发了一种新的排序算法,其中每个成对比较反映了主观的人类判断哪个元素更大或更好。我们引入了一个有限的和大的出错率的每一个判断,我们采取的成本,每个比较显着超过其他计算步骤的成本。该算法必须从用户那里请求信息量最大的比较序列;以便以最少的人工输入识别正确的排序列表。我们的离散绝热蒙特卡罗方法通过跟踪一组合理的假设来逐步获取信息,这些假设在每次额外的比较后都会更新。
2016-12-27 cs.AI cs.DS cs.HC
Robust-Sorting and Applications to Ulam-Median
本文研究存在有界错误比较的鲁棒排序问题,提出一种期望查询近线性数量边的随机化算法,使输出顺序与真实顺序的距离控制在 $(3+ε)|B|$ 内,并首次为 Ulam-$k$-Median 问题给出 $(2-ε)$ FPT 线性时间近似算法。
2025-05-05 cs.DS
Rahmani Sort: A Novel Variant of Insertion Sort Algorithm with O(nlogn) Complexity
本文提出 Rahmani Sort,通过二分搜索定位插入位置以改进插入排序,实现 O(nlogn) 复杂度;实验表明其实际运行性能优于传统插入排序和归并排序。
2024-02-29 cs.CR cs.DS
Adaptive Hybrid Sort: Dynamic Strategy Selection for Optimal Sorting Across Diverse Data Distributions
本文提出一种自适应混合排序范式,通过特征提取模块与有限状态机及XGBoost决策引擎,根据数据特征动态选择Counting Sort、Radix Sort或QuickSort,实验证明其在执行时间与灵活性上优于传统静态算法。
2025-06-22 cs.DB cs.DS cs.PF
Cache Analysis of Non-uniform Distribution Sorting Algorithms
我们分析了平均情况下的缓存性能的分布排序算法的情况下,键是独立的,但不一定均匀分布。该分析适用于“就地”和“不就地”分布排序算法,比\cite{RRESA00}中的分析更准确。特别是,这种新的分析产生更严格的上限和下限时,从一个均匀分布的密钥。当整数排序算法MSB基数排序用于对独立均匀浮点数(浮点数)进行排序时,我们使用此分析来调整其性能。当从$[0, 1)$中对均匀浮点数进行排序时,我们的优化MSB基数排序算法轻松地优于缓存优化的桶排序\cite{RR99}和快速排序实现。
2007-08-13 cs.DS cs.PF
Analysis of String Sorting using Heapsort
在这篇硕士论文中,我们分析了一组字符串排序的复杂性。结果表明,排序字符串的复杂性可以很自然地表示在由字符串的集合诱导的前缀trie。计算模型考虑了符号比较,而不仅仅是字符串之间的比较。给出了快速排序和归并排序等经典算法在该模型下的上下界分析。在这里,我们将分析扩展到另一个经典的算法-堆排序。我们还分析了使用二项式堆作为堆实现的算法版本。
2014-08-11 cs.CC cs.DS
The Geometry of Tree-Based Sorting
该研究建立了BST模型与一大类排序算法的代价等价关系,利用BST的几何解释提出排列复杂度的对数交错界,还设计了对应并行排序算法并证明相关离线BST算法的存在性。
2023-05-04 cs.DS
Vertex Ordering Problems in Directed Graph Streams
我们认为有向图算法在一个流设置,专注于有关的顶点排序的问题。这包括拓扑排序和无环性测试等基本问题。我们还研究了相关的问题,找到一个最小的反馈弧集(边的删除产生一个无环图),并找到一个汇点。我们对逆序流和随机序流都感兴趣。对于任意输入图的边缘顺序相反,我们表明,这些问题中的大多数具有很高的空间复杂度,排除子线性空间的解决方案。当流是随机排序的时,一些下限也适用:例如,在我们大多数技术结果中,我们表明在$p$ -通过随机顺序模型中测试非循环性大致需要$n^{1+1/p}$空间。对于其他问题,随机排序可以产生巨大的差异:例如,在使用多对数$(n)$空间的单通道随机顺序模型中,可以在非循环竞赛中找到一个汇点,而在对抗顺序下,给定$Θ(p)$通道,大致$n^{1/p}$空间是必要的和足够的。我们还设计了次线性算法的反馈弧集问题的比赛图,随机图和随机排序的流。在某些情况下,我们给出了下界,建立我们的算法基本上是空间最优的。总之,我们的结果补充了更成熟的无向图流算法的工作。
2021-05-18 cs.DS
Leyenda: An Adaptive, Hybrid Sorting Algorithm for Large Scale Data with Limited Memory
排序是现代数据管理系统的基本任务之一。随着磁盘I/O成为最受指责的性能瓶颈和更多计算密集型工作负载,我们注意到,在异构环境中,性能瓶颈可能因基础设施而异。因此,排序内核需要适应不断变化的硬件条件。在本文中,我们提出了Leyenda,一个混合的,并行的和高效的基数最高有效位(MSB)合并排序算法,利用本地线程级CPU缓存和高效的磁盘/内存I/O。Leyenda能够根据不同的I/O和处理条件有效地进行内部或外部分拣。我们使用Sort Benchmark的三种不同工作负载对Leyenda进行了基准测试,针对三种独特的用例,包括内部,部分内存和外部排序,我们发现Leyenda的性能超过GNU的并行内存快速/合并排序实现多达三倍。Leyenda还在ACM 2019 SIGMOD编程竞赛中排名第二,总体排名第四。
2019-09-17 cs.DB cs.DC cs.DS
TwinArray Sort: An Ultrarapid Conditional Non-Comparison Based Sorting Algorithm
本文提出TwinArray Sort,一种利用双辅助数组和条件去重验证的非比较排序算法,达到O(n+k)复杂度,在多种数据分布下优于传统排序算法,适用于大规模数据处理和机器学习数据集管理。
2024-09-30 cs.CC cs.DS
An Explicit and Efficient $O(n^2)$-Time Algorithm for Sorting Sumsets
本文提出首个显式基于比较的算法,以最优$O(n^2)$时间排序和集,利用矩阵单调性消除对数开销,并扩展至$k$重和集,实验验证显著加速。
2025-04-23 cs.DM cs.DS
A Dualheap Selection Algorithm - A Call for Analysis
提出了一种算法,有效地解决了选择问题:找到一个集合的第k个最小的成员。与分治策略相关,该算法还将集合划分为小值子集和大值子集。递归地应用,这种划分会产生一个有序集。因此,该算法的适用性比选择问题更广泛。该算法基于R.W. Floyd的1964年算法,自底向上构造堆。从经验来看,所提出的算法的性能似乎与流行的快速选择算法(C.A.R.的变体)具有竞争力1962年霍尔的快速排序算法。此外,自底向上构造堆是一个固有的并行过程(处理器可以独立地同时进行子堆构造),这表明并行实现具有性能优势。鉴于所提出的算法的广泛适用性,简单,串行性能,并行性质,进一步的研究是必要的。具体而言,最坏情况分析是一个重要但尚未解决的问题。
2001-03-28 cs.DC cs.DS