快速排序

分而治之(divide and conquer,D&C)

示例1

Q:一块1680m*640m的土地,均匀分成方块,且分出来的方块尽可能大?


农场土地
分法问题

使用D&C解决问题的过程分为两个步骤:
1.找出基线条件,这种条件尽可能简单
2.不断的将问题分解(或者说缩小规模),直到符合基线条件

首先找基线条件,最容易的就是


最容易的状况

那么这就是基线条件了

image.png

image.png
image.png

示例2

Q:用递归计算数组求和
基线条件?
递归条件?

函数是编程一瞥

函数式编程

快速排序

基线条件:数组长度为1
递归条件:任意取数组中一个基准值,比基准值小的放右边,比基准值大的放左边

你可能感兴趣的:(快速排序)