New Sorting Algorithm Wave Sort (W-Sort)
University of California, Davis(加州大学戴维斯分校)
波排序是一种新型原地排序算法,通过动态主元选择策略解决传统排序算法的性能问题,具有高效的比较复杂度和稳定的性能表现。
2026-01-04 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
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
Searching Lattice Data Structures of Varying Degrees of Sortedness
格型数据结构是一种空间有效且适合高速缓存的数据结构。基本的搜索、插入和删除操作的时间复杂度为$O(\sqrt{N})$。我们给出了一个时间复杂度为$O(J(L)\log(N))$的跳跃搜索算法,其中$J(L)$是格的跳跃因子.当格的排序度接近$\sqrt{N}$时,$J(L)$接近$4$。给出了一个时间复杂度为$O(\sqrt{N})$的排序过程,在系统空闲时,该排序过程可以用来增加格的排序度。
2016-05-13 cs.DS
FlipHash: A Constant-Time Consistent Range-Hashing Algorithm
本文提出FlipHash,一种常数时间、低内存的一致性范围哈希算法,在资源顺序索引场景下保证均匀分布和最小重映射,并在理论与实验中优于对数复杂度的Jump Consistent Hash。
2024-02-27 cs.DS
Memoization Without Keys: Compact, Out-of-Core Tables for Functions of Sorted Arguments
Ramakrishna Mission Vivekananda Educational and Research Institute (RKMVERI)(罗摩克里希纳传教会维韦卡南达教育与研究院)
本文提出无表索引的锥形记忆化网格,利用组合数系统实现闭式排名与反排名,显著降低内存占用并加速排序参数函数的评估,适用于 Plackett-Luce 等场景。
2026-09-23 cs.DS cs.LG
DPG: A Cache-Efficient Accelerator for Sorting and for Join Operators
我们提出了一种新的算法,快速记录检索,分布式探测收集,或DPG。DPG在排序和连接中都有重要的应用。当前的主存排序算法将其工作分为三个阶段:提取键-指针对;对键-指针对进行排序;以及根据排序后的键-指针对将原始记录复制到目标数组中。最后阶段的复制占据了今天的排序时间。因此,在第三阶段中使用DPG为现有的排序算法提供了加速器。DPG还为外键连接提供了两种新的连接方法:DPG-move join和DPG-sort join。使用DPG产生的连接方法更快,因为DPG连接是高速缓存高效的,同时DPG连接避免了排序或哈希的需要。外键连接的思想也可以扩展到更快的记录对检索的空间和时间数据库。
2003-08-02 cs.DB cs.DS
An efficient sorting algorithm - Ultimate Heapsort(UHS)
受计算机理论发展的推动,排序算法层出不穷。受减少和征服方法的启发,本文提出了一种新的排序算法--最终堆排序.该算法由两部分组成:建立堆和调整堆。通过对算法的渐近分析和实验分析,我们的算法在任何条件下的时间复杂度都可以达到O(nlogn)。而且,它的空间复杂度仅为O(1)。可以看出,我们的算法优于以往的所有算法。
2019-02-01 cs.DS
SquareSort: a cache-oblivious sorting algorithm
提出一种新的缓存无关排序算法SquareSort,其IO复杂度渐近最优,与FunnelSort相同,为$O(\frac{n}{B} \nlog_{M/B} n)$。
2024-07-20 cs.DS
Cache-Oblivious Peeling of Random Hypergraphs
随机生成超图中剥离顺序的计算是许多构造中最耗时的步骤,例如完美散列方案、随机$r$ -SAT求解器、纠错码和近似集编码。虽然有一个简单的线性时间算法,其I/O性能差,使其不切实际的超图的大小超过可用的内部存储器。我们展示了如何减少剥离顺序的计算,以少量的顺序扫描和排序,并分析其I/O复杂性的高速缓存遗忘模型。所得到的算法需要$O(\mathrm{sort}(n))$ I/O和$O(n \log n)$时间来剥离具有$n$边的随机超图。我们实验评估我们的实现该算法在现实世界中的情况下,使用最小完美哈希函数(MPHF)的建设作为我们的测试用例的性能:我们的算法建立了一个MPHF的$7.6$十亿键在不到$21$小时在一台机器上。所得到的数据结构比用当前最先进的用于大规模密钥集的MPHF构造所获得的数据结构更节省空间并且更快。
2013-12-02 cs.DS
PCF Learned Sort: a Learning Augmented Sort Algorithm with $O(n \log\log n)$ Expected Complexity
Graduate School of Information Science and Technology The University of Tokyo(东京大学信息理工学系研究科)
本文提出PCF学习排序算法,首次从理论上证明学习排序在温和数据分布假设下具有O(n log log n)期望复杂度,并通过合成与真实数据集实验验证,为学习排序的快速性提供了理论依据。
2025-11-10 cs.CC cs.DS
Fusion Tree Sorting
排序问题是计算机科学中最重要的问题之一。在现代计算机科学的范围内,它已经被研究了70多年。尽管有这些事实,新的排序算法已在近年来开发。在几种类型的排序算法中,有些更快;有些在空间方面更经济,而另一些则在数据输入方面插入一些限制。本文旨在解释融合树数据结构,它负责复杂时间小于NLGN的第一种排序算法。nlgn的时间复杂度导致了一些混乱,并在部分社区中产生了错误的信念,认为它是解决这类问题的最低可能性。
2014-11-01 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
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
QR Sort: A Novel Non-Comparative Sorting Algorithm
本文提出QR Sort,一种基于商余定理与计数排序的非比较整数排序算法,通过设定参数实现线性时间复杂度,并在大范围输入序列上优于既有算法。
2024-11-12 cs.DS
Analysis of Sorting Algorithms by Kolmogorov Complexity (A Survey)
近年来,利用Kolmogorov复杂性(不可压缩性方法)得到了许多关于排序算法计算复杂性的结果。特别是对通常比较困难的平均情况分析,也适用于该方法。在这里,我们调查这样的结果Bubberort,堆排序,Shellsort,Dobosiewicz排序,Shakersort,排序与堆栈和队列在顺序或并行模式。特别是在Shellsort的情况下,Kolmogorov复杂性的使用令人惊讶地轻松解决了那些尽管受到猛烈攻击但仍然开放了很长时间的问题。
2009-05-27 cs.CC cs.DS
Partition Sort Revisited: Reconfirming the Robustness in Average Case and much more!
在我们之前的工作中,有一些迹象表明分区排序可能比流行的快速排序具有更强大的平均情况O(nlogn)复杂度。在本文的第一项研究中,我们通过计算机实验重新确认了这一点,从柯西分布的期望理论上不存在的输入。此外,该算法被发现是敏感的输入概率分布的参数,需要进一步研究参数化的复杂性。在我们的第二项研究中,该算法对二项式输入的结果在这个方向上非常令人鼓舞。
2012-03-27 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
A Sorting Algorithm Based on Calculation
本文介绍了一种自适应排序算法,通过将元素的值代入一个函数(我们称之为猜测函数)中,可以准确地重新定位元素。我们着重于建立这个函数,它本质上是记录值和它们对应的排序位置之间的映射关系。当记录均匀分布时,该算法的时间复杂度为O(n)。另外,在搜索算法中可以使用类似的方法。
2005-08-29 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 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
ARC Sort: Enhanced and Time Efficient Sorting Algorithm
本文讨论了一种使用桶概念的排序算法,每个桶代表一定数量的数字。使用二维的数据结构,其中一维表示桶i。e;位数和每个桶的对应维度表示属于该桶的输入数字。然后,每个桶被单独排序。由于每个前面的桶元素总是小于后面的桶,因此不需要进行比较。通过这样做,我们可以显著降低任何用于对给定输入集进行排序的排序算法的时间复杂度。
2014-06-06 cs.DS
On the Complexity of Approximate Sum of Sorted List
我们考虑的复杂性计算的近似总和$a_1+a_2+...+a_n$的排序列表的号码$a_1\le a_2\le ...\le a_n$。我们展示了一个算法,计算一个$(1+ε)$近似值的总和排序列表中的非负数在$O({1\over ε}\min(\log n, {\log ({x_{max}\over x_{min}})})\cdot (\log {1\over ε}+\log\log n))$时间,其中$x_{max}$和$x_{min}$是最大和最小的正元素的输入列表,分别。证明了非负元素排序表之和的$Ω(\min(\log n,\log ({x_{max}\over x_{min}}))$时间的一个下界,该下界对于每个O(1)-近似算法都是O(1).我们还表明,有没有次线性时间近似算法的总和排序列表,其中至少包含一个负数。
2012-01-21 cs.CC cs.DS
Unidirectional Input/Output Streaming Complexity of Reversal and Sorting
我们考虑访问受限的单向数据流,如只读和只写流。对于读写流,我们还引入了一个新的复杂性度量,称为扩展,即流上使用的空间与输入大小之间的比率。我们在几种可能的模型中给出了反转长度为$n$的流的复杂性的严格界限。在只读和只写模型中,我们证明了$p$ -pass算法需要存储空间$Θ(n/p)$。但是如果输出流或输入流是读写的,那么复杂度就降到$Θ(n/p^2)$。如果$p = O(log n)$和两个流都是读写的,则它变为$polylog(n)$。我们还研究了流排序的复杂性,并给出了两个具有较小扩展的算法。我们的主要排序算法是随机的,并具有$O(1)$扩展,$O(log n)$通行证和$O(log n)$内存。
2014-07-18 cs.CC cs.DS
SIMD-Optimized Search Over Sorted Data
应用程序通常需要对排序数据执行快速的单线程搜索算法,这在表查找操作中很常见。我们探索各种搜索算法,大量的搜索候选人在一个相对较小的数组的有序分布的排序数据。其中包括一个创新的基于散列的搜索,它利用浮点表示法按指数对数据进行二进制处理。可以被优化以利用SIMD向量指令的算法是特别感兴趣的。然后,我们进行了一个案例研究,应用我们的结果和分析算法的性能与EOSPAC包。EOSPAC是一个表查找库,用于操作和内插SENSOR状态方程数据。我们的调查结果在一对夫妇的算法具有更好的性能,最好的情况下,8倍的加速比原来的EOSPAC狩猎和定位实现。我们的技术是推广到其他实例的搜索算法寻求获得性能提升矢量化。
2021-12-06 cs.DC 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
On the Worst-Case Complexity of TimSort
TimSort是2002年为Python设计的一个有趣的排序算法,它的最坏情况复杂度被宣布,但直到我们最近的预印本才被证明。实际上,TimSort有两个稍微不同的版本,目前分别在Python和Java中实现。我们提出了一个教学和有见地的证明,Python版本运行在$\mathcal{O}(n\log n)$。我们在分析中使用的方法也适用于Java版本,尽管并非没有非常复杂的技术细节。作为我们研究的副产品,我们发现了Java实现中的一个错误,该错误可能导致排序方法在执行过程中失败。我们还证明了Python的TimSort运行时间是$\mathcal{O}(n + n\log ρ)$,其中$ρ$是运行次数(即最大单调序列),这是一个很自然的参数,也是TimSort在部分排序输入上表现良好的部分解释。
2019-07-07 cs.DS
Anytime Sorting Algorithms (Extended Version)
本文研究随时排序问题,提出让任意排序算法具备随时性的通用方法,推出multizip sort和Corsort两种新算法,经仿真验证性能优于现有方法,分别兼具低全局复杂度和更优中间估计效果的优势。
2024-05-14 cs.DS
Simple and efficient four-cycle counting on sparse graphs
本文提出一种稀疏图上计数4-环的确定性精简算法,仅需O(mδ̄)时间和n个字空间,无需哈希表或排序,且实验显示比哈希表实现平均快4至7倍。
2024-09-27 cs.DS
Sorting Lists with Equal Keys Using Mergesort in Linear Time
本文介绍了一种新的优化方法,用于在对与$O(n log_2 k)$具有相同键的序列进行排序时提高合并排序的运行时复杂度,其中$k$是序列中不同键的数量。当$k$为常数时,显然合并排序能够通过利用链表作为其底层数据结构来实现线性时间。合并排序链表实现可以通过引入一种新的机制来优化,将具有相等键的元素分组在一起,从而允许合并算法实现线性时间。
2020-12-15 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
Improved in-place associative integer sorting
提出了一种新的整数排序技术,以取代桶排序、分布计数排序和地址计算排序算法族,这些算法只需要固定的额外内存。该技术的灵感来自于“行为序列”的有序理论之一,并通过与认知神经科学中记忆形成和检索的三个主要阶段(即(i)练习,(ii)存储和(iii)检索)进行类比来解释。在这项研究中,该技术的改进,从理论和实践中,得到一个算法,这是比前者更快,使其更具竞争力。利用改进的版本,n个整数S[0. n-1]中的每一个都在范围[0,n-1]中精确排序,而前一种技术的复杂度是递归T(n)= T(n/2)+ O(n),产生T(n)= O(n)。
2012-09-17 cs.DS
Equivalence between Priority Queues and Sorting in External Memory
优先级队列是一种基本的数据结构,它维护一组动态有序的键,并支持以下基本操作:插入键、删除键和查找最小键。优先级队列的复杂性与排序的复杂性密切相关:优先级队列可以用来实现一个简单的排序算法。Thorup \cite{thorup2007equivalence}证明了在RAM模型中也是如此。特别是,他设计了一个优先级队列,使用排序算法作为黑盒,这样优先级队列的每个操作成本与排序的每个键成本渐近相同。在本文中,我们证明了一个类似的结果,在外部存储器模型,优先级队列是计算等价于排序在外部存储器中,在一些温和的假设。这种减少提供了一种可能性,证明下界的外部排序通过显示一个下界的优先级队列。
2012-07-18 cs.DS
Sorting Balls and Water: Equivalence and Computational Complexity
多年来,人们研究了各种形式的排序问题。最近流行两种排序解谜类APP。在这些谜题中,我们会得到一组装满彩色单位、球或水的箱子,以及一些空箱子。这些谜题允许我们在颜色以某种方式匹配或目标箱为空时将彩色单元从一个箱移动到另一个箱。这些谜题的目标是将所有颜色单位按顺序排序。我们研究了这些问题的计算复杂性。我们首先表明,这两个难题本质上是相同的,从可解性的观点。也就是说,一个实例可以通过ball-moves排序当且仅当它可以通过water-moves排序。我们还证明了每一个yes-实例都有多项式长度的解,这意味着这些问题属于NP问题。然后,我们表明,这些问题是NP完全的。对于某些特殊情况,我们给出了多项式时间算法。最后,我们认为空箱子的数量足以使所有的情况下可解,并给出非平凡的上限和下限方面的填充箱的数量和容量的箱子。
2022-02-19 cs.CC 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
Energy-Efficient Algorithms
基于物理学中的Landauer原理,我们对算法的能量复杂度(除了时间和空间复杂度之外)进行了系统的研究。Landauer原理给出了一个系统在破坏信息时必须消耗的能量的下限。我们提出了三种标准计算模型的能量感知变体:电路RAM,字RAM和transdichotomous RAM。在这些模型之上,我们建立了熟悉的高级原语,如控制逻辑,内存分配,和垃圾回收与零能量复杂度和空间和时间复杂度只有常数因子开销,使简单的表达节能算法。我们分析了几个经典的算法在我们的模型和开发低能耗的变化:比较排序,插入排序,计数排序,广度优先搜索,贝尔曼-福特,Floor-Warshall,矩阵所有对最短路径,AVL树,二叉堆,和动态数组。我们探讨了时间/空间/能源的权衡,并开发了几种通用的技术分析算法,降低其能源的复杂性。这些结果为半可逆计算的新领域奠定了理论基础,并为算法的研究提供了新的框架。
2016-05-26 cs.DS
The Input/Output Complexity of Triangle Enumeration
我们考虑一个著名的问题,即枚举无向图的所有三角形。我们的重点是确定这个问题的输入/输出(I/O)的复杂性。令$E$为边数,$M<E$为内部存储器的大小,$B$为块大小。先前获得的最佳结果是排序$(E^{3/2})$ I/O(Dementiev,博士论文2006)和$O(E^2/(MB))$ I/O(Hu等人,SIGMOD 2013),其中排序$(n)$表示用于对$n$项进行排序的I/O数量。我们将I/O复杂度提高到$O(E^{3/2}/(\sqrt{M} B))$预期I/O,这将以前的界限提高了一个因子$\min(\sqrt{E/M},\sqrt{M})$。我们的算法是高速缓存无关的,也是I/O最优的:我们表明,任何算法枚举$t$不同的三角形必须始终使用$Ω(t/(\sqrt{M} B))$ I/O,并有图$t=Ω(E^{3/2})$。最后,我们给出了一个使用$O(E^{3/2}/(\sqrt{M} B))$ I/O的确定性缓存感知算法,假设$M\geq E^\varepsilon$为常数$\varepsilon > 0$。我们的研究结果是基于一种新的颜色编码技术,这可能是独立的利益。
2014-03-22 cs.DS
Double-Hashing Algorithm for Frequency Estimation in Data Streams
元素的频率估计是数据流分析和机器学习应用的重要任务。该问题通常通过使用具有次线性空间数据结构的流算法来解决。这些算法允许在使用有限的数据存储的同时处理大数据。常用的流式算法,如count-min sketch,有很多优点,但没有考虑到性能优化的数据流的属性。在本文中,我们介绍了一种新的双哈希算法,提供了灵活性,优化流算法取决于给定流的属性。在双散列方法中,首先采用标准流算法来获得元素频率的估计。该估计值是使用流的一部分导出的,并且允许识别重打击者。接下来,它使用修改的哈希表,其中重命中者被映射到各个桶中,而其他流元素被映射到剩余的桶中。最后,基于所构造的哈希表在整个数据流上利用任何流算法来估计元素频率。我们证明了合成数据和互联网查询日志数据集,我们的方法是能够提高频率估计,由于从哈希过程中删除重打击者,从而减少冲突的哈希表。我们的方法避免了采用额外的机器学习模型来识别重量级人物,从而降低了算法复杂度并简化了实现。此外,因为它不依赖于流元素的特定特征来识别重打击者,所以它适用于各种各样的流。此外,我们提出了一个程序,如何动态调整建议的双哈希算法时,流中的元素的频率随时间而变化。
2022-04-01 cs.DS
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
RAM-Efficient External Memory Sorting
近年来,大量的问题已经被认为是在外部存储器模型的计算,其中的复杂性措施是数据块的数量之间移动缓慢的外部存储器和快速的内部存储器(也称为I/O)。然而,在实践中,一旦获得I/O效率,内部存储器时间通常占总运行时间的主导地位。在本文中,我们研究的基本问题,同时是I/O高效和内存效率的RAM模型的计算算法。
2013-12-10 cs.DS
The technique of in-place associative sorting
首先,提出了一种新颖的、直接的整数值就地排序算法。它使用恒定数量的额外内存在线性时间内进行排序,用于存储输入数组旁边的计数器和索引。该技术的灵感来自于“行为序列”理论背后的主要思想,并通过与认知神经科学中记忆形成和检索的三个主要阶段进行类比来解释:(i)练习,(ii)存储和(iii)检索。它在时间复杂度方面得到了进一步的改进,并且专门用于不同的整数,尽管仍然不适合秩排序。之后,另一种新颖的,但简单的技术,这使得这种有效的值排序技术适合排序。因此,给定一个n个元素的数组,每个元素都有一个整数键,该技术仅使用恒定量的额外存储器在线性时间内根据它们的整数键对元素进行排序。所设计的技术是非常实用和有效的优于桶排序,分布计数排序和地址计算排序算法家族,使其在几乎所有情况下,即使空间不是一个关键资源的吸引力。
2013-07-10 cs.DS
Analysis of String Sorting using Heapsort
在这篇硕士论文中,我们分析了一组字符串排序的复杂性。结果表明,排序字符串的复杂性可以很自然地表示在由字符串的集合诱导的前缀trie。计算模型考虑了符号比较,而不仅仅是字符串之间的比较。给出了快速排序和归并排序等经典算法在该模型下的上下界分析。在这里,我们将分析扩展到另一个经典的算法-堆排序。我们还分析了使用二项式堆作为堆实现的算法版本。
2014-08-11 cs.CC cs.DS
Massively-Parallel Heat Map Sorting and Applications To Explainable Clustering
Sharif University of Technology(谢里夫理工大学)
本文提出了热图排序问题以在保持簇连通性的前提下重排与合并点及维度,证明了其NP难性,并给出了大规模并行计算模型下的常数轮次固定参数算法及NP难特例的近似算法,实证表明其优于k-means和DBSCAN。
2023-09-14 cs.DC cs.DS cs.LG
The Usefulness of Multilevel Hash Tables with Multiple Hash Functions in Large Databases
在这项工作中,试图选择三个好的散列函数,均匀分布的散列值,置换其内部状态,并允许输入位生成不同的输出位。这些函数用于不同层次的哈希表中,这些哈希表是用Java程序设计语言编写的,并且相当数量的数据记录作为测试性能的原始数据。结果表明,采用三种不同哈希函数的两级哈希表在减少冲突键和快速查找特定元素方面优于采用两种哈希函数的一级哈希表和采用一种哈希函数的零级哈希表.该结果有助于将查询语言中连接操作的复杂度从O(n2)降低到O(1),将较大的查询结果放置在具有多个哈希函数的多级哈希表中,生成较短的查询结果。
2009-05-26 cs.DB cs.DS
Tight Lower Bounds for Data-Dependent Locality-Sensitive Hashing
我们证明了一个紧的下界指数$ρ$的数据依赖的局部敏感哈希方案,最近用于设计有效的解决方案的$c$ -近似最近邻搜索。特别是,我们的下界匹配$\ell_1$空间的$ρ\le \frac{1}{2c-1}+o(1)$的界,通过最近的算法从[Andoni-Razenshteyn,STOC'15]获得。近年来,人们发现,当散列函数与数据无关时,数据相关散列严格优于经典的局部敏感散列。在后一种设置中,最佳指数已经知道:对于$\ell_1$空间,紧边界是$ρ=1/c$,上限来自[Indyk-Motwani,STOC'98],匹配的下限来自[O' Donnell-Wu-Zhou,ITCS'11]。我们证明,即使散列是数据相关的,它必须持有的$ρ\ge \frac{1}{2c-1}-o(1)$。为了证明这个结果,我们需要形式化数据相关哈希的确切概念,它也捕获了哈希函数的复杂性(除了它们的冲突属性)。如果不限制这种复杂性,我们将允许明显不可行的解决方案,如数据集的沃罗诺伊图。为了排除这种解决方案,我们要求哈希函数简洁。所有已知的算法结果都满足这个条件。
2015-07-15 cs.CC cs.CG cs.DS
Sparse similarity-preserving hashing
近年来,大量的注意力已经投入到有效的最近邻搜索的相似性保持哈希。现有散列技术的困境之一是性能和计算复杂性之间的内在权衡:虽然较长的散列码允许较低的误报率,但很难在不导致非常高的误报率或禁止计算成本的情况下增加嵌入维数。在本文中,我们提出了一种方法来克服这种限制,强制散列码是稀疏的。稀疏高维码享有长散列的典型的低假阳性率,同时保持假阴性率类似于具有相等数量的自由度的较短密集散列方案的假阴性率。我们使用一个定制的前馈神经网络的哈希函数。涉及视觉和多模态数据的广泛的实验评估显示了所提出的方法的好处。
2014-02-16 cs.CV cs.DS
Space-Efficient Lock-Free Linear-Probing Hash Table
Technion, Israel(以色列理工学院);Tel-Aviv University, Israel(特拉维夫大学)
提出一种免锁线性探测哈希表,具有无等待查找,在保持空间高效的同时优雅处理并发,使用少量元数据实现线性化、免锁操作。
2026-06-17 cs.DC cs.DS
Faster and Space Efficient Indexing for Locality Sensitive Hashing
Indian Institute of Technology Mandi(印度理工学院曼迪分校);Indian Institute of Technology Hyderabad(印度理工学院海得拉巴分校)
本文针对局部敏感哈希索引构建中 O(md) 的时间和空间开销,提出基于 count sketch 及其高阶形式的 CSELSH、HCSELSH、CSSRP 和 HCSSRP 算法,将哈希码计算时间降至 O(d) 并显著降低空间复杂度,且在真实数据集上验证了有效性。
2025-07-17 cs.DS cs.LG
Optimal Densification for Fast and Accurate Minwise Hashing
Rice University(莱斯大学)
Minwise hashing是一种基本的hashing算法,也是文献中最成功的hashing算法之一。最近的进展基于致密化~ \cite{Proc:OneHashLSH_ICML14,Proc:Shrivastava_UAI14}的思想已经表明,它是可能的计算$k$ minwise散列,一个向量与$d$非零,在纯粹的$(d + k)$计算,一个显着的改进,在经典的$O(dk)$。这些进步导致了基于minwise散列的传统索引算法的查询复杂度的算法改进。不幸的是,目前的致密化技术的方差是不必要的高,这导致显着差的准确性相比,香草minwise散列,特别是当数据稀疏。在本文中,我们提供了一种新的致密化方案,它依赖于精心定制的2-通用哈希。我们表明,该方案是方差最优的,而不会失去运行时的效率,它是显着更准确的比现有的致密化技术。因此,我们得到了一个显着有效的散列方案,它具有相同的方差和碰撞概率minwise散列。真实稀疏和高维数据集上的实验评估验证了我们的主张。我们相信,鉴于显着的优势,我们的方法将在实践中取代minwise散列实现。
2017-03-14 cs.DS cs.LG
Sublinear Least-Squares Value Iteration via Locality Sensitive Hashing
Rice University(莱斯大学);Institute for Advanced Study(高等研究院);Princeton University(普林斯顿大学)
我们提出了第一个可证明的最小二乘值迭代(LSVI)算法,具有运行时复杂度次线性的行动的数量。我们制定的价值函数估计过程中的值迭代近似的最大内积搜索问题,并提出了一个局部敏感哈希(LSH)[Indyk和Motwani STOC'98,Andoni和Razenshteyn STOC'15,Andoni,Laarhoven,Razenshteyn和Waingarten SODA'17]类型的数据结构来解决这个问题的次线性时间复杂度。此外,我们建立了近似最大内积搜索理论和强化学习的后悔分析之间的联系。我们证明,我们的近似因子的选择,我们的次线性LSVI算法保持相同的遗憾,同时减少运行时的复杂性,以次线性的动作的数量的原始LSVI算法。据我们所知,这是第一个将LSH与强化学习相结合的工作,从而带来了可证明的改进。我们希望我们的新方法相结合的数据结构和迭代算法将打开大门,进一步研究成本降低优化。
2021-06-08 cs.DS cs.LG stat.ML
Information-theoretic lower bounds for quantum sorting
我们分析了部分信息下排序的量子查询复杂度。在这个问题中,我们给出了一个偏序集$P$,并要求使用成对比较来识别$P$的线性扩展。对于标准的排序问题,其中$P$是空的,它是已知的量子查询的复杂性是不是渐近小于经典的信息理论的下限。我们证明这适用于广泛的一类偏序集,从而改进了Yao(STOC'04)的结果。
2019-02-18 cs.CC cs.DS math.CO
Hashing Modulo Alpha-Equivalence
在许多应用中,人们希望标识程序语法树的相同子树。理想情况下,这种识别应该对程序的alpha重命名具有鲁棒性,但没有现有技术显示出以良好的效率实现这一点(在表达大小上优于$\mathcal{O}(n^2)$)。我们提出了一种新的,渐近有效的方式来散列模α-等价。我们的方法的一个关键见解是使用弱(可交换)散列组合器在建设中的一个点,这承认一个算法与$\mathcal{O}(n (\log n)^2)$时间复杂度。我们证明,使用的交换组合器,但产生一个强大的哈希低碰撞概率。数值基准证明了该方法的渐近行为。
2021-05-06 cs.DS cs.PL
Social Hash Partitioner: A Scalable Distributed Hypergraph Partitioner
我们设计并实现了一个分布式算法平衡$k$ -路超图分区,最大限度地减少扇出,一个基本的超图数量也被称为通信量和($k-1$)切割度量,通过优化一个新的目标称为概率扇出。这种选择允许一个简单的局部搜索启发式算法实现与现有最佳超图划分器相当的解决方案质量。我们的算法是任意可扩展的,由于精心设计,控制计算复杂性,空间复杂度,和通信。在实践中,我们通常在几个小时内处理具有数十亿个顶点和超边的超图。我们解释了算法的可扩展性,无论是在超图的大小和桶数,是有限的,只有可用的机器的数量。我们进行了广泛的比较,现有的分布式超图分区,并发现我们的方法是能够优化超图大致$100$倍以上的同一组机器。我们称之为社会哈希分区工具(SHP),并伴随着这篇论文,我们开源的最可扩展的版本的基础上递归二分法。
2017-07-20 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