Skip to main content
QUICK REVIEW

[论文解读] Partitioning schemes for quicksort and quickselect

Krzysztof C. Kiwiel|ArXiv.org|Dec 23, 2003
Algorithms and Data Compression参考文献 19被引用 5
一句话总结

本文提出了快速排序和快速选择的优化划分方案,重点采用三路划分以高效隔离所有等于基准值的元素。通过改进经典方案,在保持较低比较次数的同时减少了交换次数,计算结果表明三路方案仅带来轻微的性能开销,使快速选择能以极低的额外成本识别所有相等键值。

ABSTRACT

We introduce several modifications of the partitioning schemes used in Hoare's quicksort and quickselect algorithms, including ternary schemes which identify keys less or greater than the pivot. We give estimates for the numbers of swaps made by each scheme. Our computational experiments indicate that ternary schemes allow quickselect to identify all keys equal to the selected key at little additional cost.

研究动机与目标

  • 通过减少交换次数,特别是针对存在相等键值的情况,改进快速排序和快速选择中的划分方案。
  • 设计高效的三路划分方案,将元素划分为小于、等于和大于基准值三类,使快速选择能够识别所有与选定键值相等的元素。
  • 分析并比较不同划分方案在不同基准值选择策略下的平均交换次数。
  • 评估改进方案的实际性能,特别是现代架构中内层循环的指针测试和空操作交换对性能的影响。

提出的方法

  • 提出一种受保护的二路划分方案,通过必要时交换首尾元素来消除对人工哨兵的依赖。
  • 引入一种改进的Sedgewick方案,以最少的比较和交换次数高效处理相等键值,在键值互异时达到最优性能。
  • 设计一种三路划分方案,精确进行 $ n-1 $ 次比较,并最小化交换次数,其内层循环通过避免指针测试来提升速度。
  • 开发混合型两阶段划分方案,在第一阶段消除空操作交换,在第二阶段去除指针测试,从而在存在大量相等键值的输入上提升效率。
  • 采用中位数- $ 2t+1 $ 和九数中位数(ninther)基准值选择策略,以提升大输入规模下的平均性能。
  • 在多种输入类型(随机、已排序、双峰等)上进行广泛的计算实验,测量比较次数、交换次数和执行时间。

实验结果

研究问题

  • RQ1当元素互异且随机排列时,不同划分方案在平均交换次数上如何比较?
  • RQ2在现代架构上,将指针测试包含在关键比较循环中会对性能产生何种影响?
  • RQ3三路划分方案能否足够高效,使得识别所有等于基准值的元素仅带来轻微性能损失(与二路方案相比)?
  • RQ4在存在大量相等键值的输入上,所提出的方案表现如何,特别是与Lomuto方案相比(Lomuto方案在该情况下退化为 $ O(n^2) $ 时间复杂度)?
  • RQ5混合型两阶段方案在多大程度上减少了空操作交换,并提升了重复键值输入上的性能?

主要发现

  • 在互异键值输入上,所提出的三路划分方案仅带来约10%的性能损失(比二路方案慢约10%),因此在识别所有相等键值方面是一种合理的性能权衡。
  • Lomuto方案在存在大量相等键值的输入上表现极差,运行时间可能退化至 $ O(n^2) $,因为当所有元素都等于基准值时,每次划分仅能移除两个元素。
  • 混合型两阶段方案消除了空操作交换并减少了指针测试,因此在重复键值输入上显著快于标准三路方案(如Bentley-McIlroy版本)。
  • 平均而言,最佳二路方案(如方案A)最多进行 $ n/4 $ 次交换,而Lomuto方案最多可进行 $ n-1 $ 次交换,因此在存在重复元素的大规模输入中效率低下。
  • 对于通过三数中位数选择基准值的情况,新方案的渐近交换次数为 $ n/5 $,而Lomuto方案为 $ (n-1)/2 $,显示出显著改进。
  • 计算结果表明,在现代计算机上,循环中包含指针测试并不会显著减慢执行速度,这与基于旧成本模型的传统建议相矛盾。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。