###快速排序——掌握    思路    是很重要的,
# 最简单的数组是??为空的【】,或者只有一个元素的,
# so基线条件:数组为空或只包含一个元素。只需原样返回数组——根本就不用排。
# if len(array)< 2 : return array
#由简入难,我们看有两个元素的数组:那就比较大小呗,
#三个呢,我们先分解,直到满足基线条件。首先,从数组中选择一个元素,这个 被称为基准值 (pivot)。
# 接下来,找出比基准值小的元素以及比基准值大的元素。

 python quick-sort 随笔

现在
你就知道如何对包含三个元素的数组进行排序了,步骤如下。
(1) 选择基准值。
(2) 将数组分成两个子数组:小于基准值的元素和大于基准值的元素。
(3) 对这两个子数组进行快速排序。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 

 

 

归纳证明
刚才你大致见识了归纳证明!它分两步:基线条件和归纳条件。

例如,假设我要证明我能爬到梯子的最上面。递归条件是这样
的:如果我站在一个横档上,就能将脚放到下一个横档上。换言
之,如果我站在第二个横档上,就能爬到第三个横档。这就是归纳
条件。而基线条件是这样的,即我已经站在第一个横档上。因此,
通过每次爬一个横档,我就能爬到梯子最顶端。
对于快速排序,可使用类似的推理。在基线条件中,我证明这种算
法对空数组或包含一个元素的数组管用。在归纳条件中,我证明如
果快速排序对包含一个元素的数组管用,对包含两个元素的数组也
将管用;如果它对包含两个元素的数组管用,对包含三个元素的数
组也将管用,以此类推。因此,我可以说,快速排序对任何长度的

 

 

 

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄