快速排序算法原理与实现分析.pdfVIP

  • 3
  • 0
  • 约小于1千字
  • 约 4页
  • 2026-10-09 发布于山西
  • 举报

排序

快速排序:轴点

deng@tsinghua.edu.cn

左朱雀之菱菱兮,右苍龙之躍躍

分而治之

⋄pivot:左侧/右侧的元素,均不比它更大/更小

以轴点为界,自然划分:max([0,mi))≤min((mi,hi))

前缀、后缀各自(递归)排序,原序列自然有序

s⁢o⁢r⁢t⁢e⁢d⁡(=s⁢o⁢r⁢t⁢e⁢d⁡()+s⁢o⁢r⁢t⁢e⁢d⁡()

mergesort的难点在于合,而quicksort在于分

如何实现上述划分?培养轴点!

C.A.R.Hoare

(1934~)

TuringAward,1980

快速排序

```cpptemtevoidVector::quickSort(Ranklo,Rankhi){

if(hi-lo2)return;

Rankmi=partition(lo,hi);//能否足够高效?

quickSort(lo,mi);quickSort(mi+1,hi);

}

轴点

坏消息:在原始序列中,轴点未必存在…

必要条件:轴点必定已然就位//尽管反之不然

特别地:在有序序列中,所有元素皆为轴点反之亦然

快速排序:就是将所有元素逐个转换为轴点的过程

derangement:任何元素都不在原位

比如,顺

文档评论(0)

1亿VIP精品文档

相关文档