快速排序
学习分而治之。学习快速排序,快速排序使用分而治之的策略。
4.1 分而治之
例子,一个农场主将土地分成方块。步骤:①找出基线条件,这种条件必须尽可能简单。②不断将问题分解,知道符合基线条件。首先找两个大方块,会余下一个小长条,将小长条再分成俩大方块,继续分,知道分到两个小方块为止。
工作原理:
①找出简单的基线条件
②确定如何缩小问题的规模,使其符合基线条件
编写涉及数组的 递归函数时,基线条件通常是数组为空或者只包含一个元素。
4.2 快速排序
快速排序是一种常用的排序算法,比选择排序快的多。
要使用D&C,因此将数组分解,直到满足基线条件。快排原理:首先,从数组中选择一个元素这个元素被称为基准值,接下来找出比基准值小的和大的元素。为了是分区
4.3 再谈大O表示法
4.3.1 比较合并排序和快速排序
常熟也有影响
4.3.2 平均情况和最坏情况
跟基准值选择有关,请随机的选择基准值。
小结