Information-theoretic lower bounds for quantum sorting
我们分析了部分信息下排序的量子查询复杂度。在这个问题中,我们给出了一个偏序集$P$,并要求使用成对比较来识别$P$的线性扩展。对于标准的排序问题,其中$P$是空的,它是已知的量子查询的复杂性是不是渐近小于经典的信息理论的下限。我们证明这适用于广泛的一类偏序集,从而改进了Yao(STOC'04)的结果。
2019-02-18 cs.CC cs.DS math.CO
An efficient sorting algorithm - Ultimate Heapsort(UHS)
受计算机理论发展的推动,排序算法层出不穷。受减少和征服方法的启发,本文提出了一种新的排序算法--最终堆排序.该算法由两部分组成:建立堆和调整堆。通过对算法的渐近分析和实验分析,我们的算法在任何条件下的时间复杂度都可以达到O(nlogn)。而且,它的空间复杂度仅为O(1)。可以看出,我们的算法优于以往的所有算法。
2019-02-01 cs.DS
Improved Average Complexity for Comparison-Based Sorting
本文研究排序算法的平均复杂度与比较次数的关系。它的信息论下限是$n \lg n - 1.4427n + O(\log n)$。对于许多有效的算法,第一个$n\lg n$长期很容易实现,我们的重点是(负)常数因子的线性项。MergeInsertion排序的当前最佳值是$-1.3999$。我们的新值是$-1.4106$,将差距缩小了一些$25\%$。我们算法的一个重要组成部分是“二元插入”,它将两个数字$A$和$B$,$A<B$插入到一个排序序列$T$中。该插入算法对于严格的数学分析仍然足够简单,并且对于$T$的长度的一定范围工作良好,对于该范围,简单的二进制插入不起作用,因此允许我们采用与二进制插入互补的方法。
2017-05-02 cs.DS
SquareSort: a cache-oblivious sorting algorithm
提出一种新的缓存无关排序算法SquareSort,其IO复杂度渐近最优,与FunnelSort相同,为$O(\frac{n}{B} \nlog_{M/B} n)$。
2024-07-20 cs.DS
Fusion Tree Sorting
排序问题是计算机科学中最重要的问题之一。在现代计算机科学的范围内,它已经被研究了70多年。尽管有这些事实,新的排序算法已在近年来开发。在几种类型的排序算法中,有些更快;有些在空间方面更经济,而另一些则在数据输入方面插入一些限制。本文旨在解释融合树数据结构,它负责复杂时间小于NLGN的第一种排序算法。nlgn的时间复杂度导致了一些混乱,并在部分社区中产生了错误的信念,认为它是解决这类问题的最低可能性。
2014-11-01 cs.DS
New Sorting Algorithm Wave Sort (W-Sort)
波排序是一种新型原地排序算法,通过动态主元选择策略解决传统排序算法的性能问题,具有高效的比较复杂度和稳定的性能表现。
2026-01-04 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 Sorting Algorithm Based on Calculation
本文介绍了一种自适应排序算法,通过将元素的值代入一个函数(我们称之为猜测函数)中,可以准确地重新定位元素。我们着重于建立这个函数,它本质上是记录值和它们对应的排序位置之间的映射关系。当记录均匀分布时,该算法的时间复杂度为O(n)。另外,在搜索算法中可以使用类似的方法。
2005-08-29 cs.DS
Kolmogorov complexity, Lovasz local lemma and critical exponents
D. Krieger和J.Shallit证明了每个大于1的实数都是某个序列的临界指数。我们展示了如何可以得出这个结果的一些一般性声明序列的连续性(几乎)最大的柯尔莫哥洛夫复杂性。通过这种方式,人们也可以构造一个序列,该序列没有指数超过给定值的“近似”分数幂。
2010-09-25 cs.DS math.CO
Sorting and Selection in Posets
经典的排序和搜索问题假设被比较对象的基本线性排序。在本文中,我们研究了一个更一般的设置,其中一些对象对是不可比的。这一概括在与体育、大学录取或会议提交的排名相关的应用中是相关的。它在生物学中也有潜在的应用,例如比较不同菌株细菌的进化适应性,或者理解一组代谢反应之间的输入-输出关系,或者一组相互作用的基因或蛋白质之间的因果影响。我们的结果改进和扩展了二十年前Faigle和Turán的结果。偏序集(英语:partially ordered set)的复杂性的度量是它的宽度。我们的算法通过比较两个元素的查询来获得关于偏序集的信息。我们提出了一个算法,排序,即完全识别,宽度w偏序集的大小为n,并具有查询复杂度O(wn + nlog(n)),这是在一个常数因子的信息理论下限。我们还证明了Mergesort的一个变体的查询复杂度为O(wn(log(n/w),总复杂度为O((w^2)nlog(n/w))。Faigle和Turán证明了排序问题的查询复杂度为O(wn(log(n/w),但没有解决其总复杂度。对于相关的问题,确定偏序集的最小元素,我们给出了有效的确定性和随机算法与O(wn)查询和总复杂度,以及匹配的查询复杂度的下界高达2的一个因素。我们将这些结果推广到确定元素的高度最多为k的k-选择问题。我们还推导出上界的总复杂性的其他一些类似的味道的问题。
2007-07-10 cs.DM 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
Men Can't Always be Transformed into Mice: Decision Algorithms and Complexity for Sorting by Symmetric Reversals
排列的反转排序是基因组重排中的一个著名问题。自1997年以来,大量的生物学证据表明,在许多基因组中,反向区域的两侧通常是一对反向重复序列。这种类型的反转被称为对称反转,不幸的是,直到最近才在很大程度上被忽视。在本文中,我们研究了对称反转排序的问题,它需要一系列的对称反转将一个染色体$A$转换成另一个染色体$B$。通过对称反转排序的决策问题被称为{ \em SSR}(当输入染色体$A$和$B$被给出时,我们使用{ \em SSR(A,B)})和相应的优化版本(即,当对{ \em SSR(A,B)}的回答为是时,使用最小数量的对称反转将$A$转换为$B$)被称为{ \em SMSR(A,B)}。本文的主要结果总结如下,其中输入是一对染色体$A$和具有$n$重复的$B$。(1)我们提出了一个求解决策问题{ \em SSR(A,B)}的$O(n^2)$时间算法,即,确定染色体$A$是否可以通过一系列对称反转转化为$B$。(2)我们设计了一个$O(n^2)$时间算法来处理一个特殊的2-平衡情形{ \em SMSR(A,B)},其中染色体$A$和$B$都有重复数2,并且每个重复在$A$和$B$中以不同的方向出现两次. (3)我们表明,SMSR是NP难的,即使输入染色体的重复数最多为2,从而表明上述正优化结果是最好的可能。作为一个副产品,我们表明,\emph{minimum Steiner tr…
2023-02-07 cs.DS
Optimal Prefix Free Codes With Partial Sorting
我们描述了一种算法计算一个最佳的前缀自由代码的$n$未排序的正权重在时间内$O(n(1+\lg α))\subseteq O(n\lg n)$,其中交替$α\in[1..n-1]$措施的排序所需的计算量。在大小为$n$和交替$α$的所有实例的最坏情况下,该渐近复杂度在代数决策树计算模型中的最优值的恒定因子内。这样的结果在相同的计算模型中,通过仅结合van Leeuwen的算法从排序的权重计算最佳无前缀码,在最坏情况下,在大小为$n$的实例上,改进了$Θ(n\lg n)$的现有技术复杂度,这是自1952年以来压缩和编码中的里程碑(自1976年以来已知),与延迟数据结构部分排序的多集依赖于它的查询(自1988年以来已知)。
2016-01-29 cs.DS
Equivalence between Priority Queues and Sorting in External Memory
优先级队列是一种基本的数据结构,它维护一组动态有序的键,并支持以下基本操作:插入键、删除键和查找最小键。优先级队列的复杂性与排序的复杂性密切相关:优先级队列可以用来实现一个简单的排序算法。Thorup \cite{thorup2007equivalence}证明了在RAM模型中也是如此。特别是,他设计了一个优先级队列,使用排序算法作为黑盒,这样优先级队列的每个操作成本与排序的每个键成本渐近相同。在本文中,我们证明了一个类似的结果,在外部存储器模型,优先级队列是计算等价于排序在外部存储器中,在一些温和的假设。这种减少提供了一种可能性,证明下界的外部排序通过显示一个下界的优先级队列。
2012-07-18 cs.DS
ARC Sort: Enhanced and Time Efficient Sorting Algorithm
本文讨论了一种使用桶概念的排序算法,每个桶代表一定数量的数字。使用二维的数据结构,其中一维表示桶i。e;位数和每个桶的对应维度表示属于该桶的输入数字。然后,每个桶被单独排序。由于每个前面的桶元素总是小于后面的桶,因此不需要进行比较。通过这样做,我们可以显著降低任何用于对给定输入集进行排序的排序算法的时间复杂度。
2014-06-06 cs.DS
Anytime Sorting Algorithms (Extended Version)
本文研究随时排序问题,提出让任意排序算法具备随时性的通用方法,推出multizip sort和Corsort两种新算法,经仿真验证性能优于现有方法,分别兼具低全局复杂度和更优中间估计效果的优势。
2024-05-14 cs.DS
QR Sort: A Novel Non-Comparative Sorting Algorithm
本文提出QR Sort,一种基于商余定理与计数排序的非比较整数排序算法,通过设定参数实现线性时间复杂度,并在大范围输入序列上优于既有算法。
2024-11-12 cs.DS
Lower Bounds for External Memory Integer Sorting via Network Coding
对超大型数据集进行排序是实践中经常发生的任务。这些数据集通常比计算机的主存储器大得多,因此经常使用由Aggarwal和Vitter(1988)首次引入的外部存储器排序算法。基于比较的外部存储器排序的复杂性已经被理解了几十年,但是如果我们假设要排序的键是整数,情况仍然难以理解。在内部存储器中,可以使用经典的基数排序算法在$O(n)$时间内对每个$Θ(\lg n)$比特的一组$n$整数密钥进行排序,然而在外部存储器中,没有已知的比基于简单比较的整数排序算法更快的整数排序算法。在本文中,我们提出了一个严格的条件下界的外部存储排序的整数的复杂性。我们的下界是基于一个著名的猜想,在网络编码的李和李,谁证明了网络编码不能帮助任何超出标准的多商品流率在无向图。以前唯一将Li和Li猜想与算法的下界联系起来的工作是Adler等人的工作。Adler等人确实获得了遗忘算法的相对简单的下界(存储器访问模式是固定的并且与输入数据无关)。不幸的是,遗忘是一个很强的限制,特别是整数排序:我们表明,李和李猜想意味着一个$Ω(n \log n)$下界的内部存储器遗忘排序时的关键字是$Θ(\lg n)$位。这与经典的(非遗忘的)基数排序算法形成鲜明对比。事实上,超越遗忘是非常重要的;我们需要引入几个新的方法和相关技术,这是他们自己的兴趣,以获得我们的外部存储器整数排序的紧下界。
2018-11-04 cs.CC cs.DB cs.DS
Recombinant Sort: N-Dimensional Cartesian Spaced Algorithm Designed from Synergetic Combination of Hashing, Bucket, Counting and Radix Sort
排序是一个被广泛使用的基本操作,对于一些非常基本的日常实用程序(如搜索,数据库,社交网络等)来说是基础。在复杂性和效率方面优化这个基本操作是至关重要的。相对于算法的空间和时间复杂度实现优化。结合桶排序、计数排序和基数排序的优点,提出了一种新的左域N维Carnival间隔排序方法,并采用哈希和动态规划提高了排序效率。比较了所提出的排序方法与现有的各种排序方法,如冒泡排序、插入排序、选择排序、归并排序、堆排序、计数排序、桶排序等,也被执行了。该模型的时间复杂度是线性的,即O(n)的最佳,平均和最坏的情况下,这是优于迄今为止介绍的任何排序算法。
2021-07-03 cs.DS
Sorting from Counterexamples
Princeton University(普林斯顿大学);Tel Aviv University(特拉维夫大学);Technion – Israel Institute of Technology(以色列理工学院);Google Research(谷歌研究院)
研究未知线性顺序学习问题,反例可能不真实且k未知,确定最优查询复杂度,还研究低维几何表示的目标排序情况,给出上下界并指出无噪声项的差距。
2026-08-25 cs.CC cs.CG cs.DS
Quantum Algorithms for the Most Frequently String Search, Intersection of Two String Sequences and Sorting of Strings Problems
我们研究的算法解决三个问题的字符串。第一个是最常见的字符串搜索问题。问题如下。假设我们有一个长度为$k$的$n$字符串序列。问题是找到在序列中出现最频繁的字符串。我们提出了一个量子算法,具有查询复杂度$\tilde{O}(n \sqrt{k})$。与需要$Ω(nk)$查询的确定性算法相比,该算法显示出速度的提高。第二个是搜索两个字符串序列的交集。所有字符串都具有相同的长度$k$。第一集合的大小是$n$,第二集合的大小是$m$。我们提出了一个量子算法,具有查询复杂度$\tilde{O}((n+m) \sqrt{k})$。与需要$Ω((n+m)k)$查询的确定性算法相比,该算法具有更高的速度。第三个问题是长度为$k$的$n$字符串的排序。一方面,众所周知,量子算法无法比经典算法更快地对对象进行渐进排序。另一方面,我们专注于对不是任意对象的字符串进行排序。我们提出了一个量子算法,具有查询复杂度$O(n (\log n)^2 \sqrt{k})$。与需要$Ω((n+d)k)$查询的确定性算法(基数排序)相比,该算法显示出速度的提高,其中$d$是字母表的大小。
2020-01-07 cs.DS quant-ph
Fast and explainable clustering based on sorting
The University of Manchester(曼彻斯特大学)
本文提出了一种名为CLASSIX的快速且可解释的聚类方法,通过排序数据的贪婪聚合与组合并两个阶段完成聚类,具有近线性时间复杂度,性能媲美最先进算法,并能生成直观解释。
2024-02-15 cs.DS cs.LG stat.CO