1.快速排序的流程
找到数组的第一个元素,然后和所在区间相比较,把这个元素放在一个恰当的索引位置,使数组左边的元素比它小,右边的元素比它大,然后把剩余的两个区间依次这样递归下去
2.快速排序的复杂度
每一次的操作都是树形的结构,因此每一层都是O(N),则整个复杂度为O(NlongN),如果数组本身就是顺序表,复杂度讲达到O(N^2)级别
3.代码设计
sort()
定义一个j,记录比第一个元素小的元素个数,当后面有元素小于第一个元素,j++,以j为索引的元素交换后面的元素,最后通过了解j的变化情况,来确定第一个元素的位置,并且返回
quick()
以树形的递归方式操作每一层的数组所对应的区间,把对应的数组区间的第一个元素放在一个规定位置
import java.util.Arrays;
/**
* Created by upupgogogo on 2018/7/18.下午1:27
*/
public class QuickSort {