博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【排序】快速排序
阅读量:4094 次
发布时间:2019-05-25

本文共 1307 字,大约阅读时间需要 4 分钟。

public class QuickSort {    private static int[] fillArray() {        Random random = new Random();        int[] array = new int[100];        for (int i = 0; i < array.length; i++) {            array[i] = random.nextInt(10000);        }        return array;    }    public static void main(String args[]) {        int[] array = fillArray();        quickSort(array, 0, array.length - 1);        System.out.println(Arrays.toString(array));    }    private static void quickSort(int[] array, int left, int right) {        if (null == array || left >= right) {            return;        }        int index = getIndex(array, left, right);        quickSort(array, left, index);        quickSort(array, index + 1, right);    }    private static int getIndex(int[] array, int left, int right) {        // 保存基准点        int tmp = array[left];        while (left < right) {            // 从右往左扫描,找到第一个比基准点小的值            while (left < right && array[right] >= tmp) {                right--;            }            array[left] = array[right];            // 从左往右扫描,找到第一个比基准点大的值            while (left < right && array[left] <= tmp) {                left++;            }            array[right] = array[left];        }        // 将基准点放回数组        array[left] = tmp;        return left;    }}
  • 时间复杂度:O(nlog(n))
  • 空间复杂度:O(log(n))

转载地址:http://ynaii.baihongyu.com/

你可能感兴趣的文章
已选择过的酒品品种,第二次选择时,会提示选择重复
查看>>
angularjs上传多张图片并预览
查看>>
angularjs上传图片时预览-点击图片放大
查看>>
已选择过的酒品品种,第二次选择时,会提示选择重复---改进
查看>>
angularjs三级省市联动
查看>>
angularjs分页查询
查看>>
input type="number"数字过大时
查看>>
angularjs中的$watch
查看>>
点击旋转图片90度-jquery
查看>>
angualrjs--resolve使用
查看>>
AngularJS 无限滚动加载数据控件 ngInfiniteScroll
查看>>
用jsp实现登录,登录成功则跳转到登录成功页面,失败则跳转到失败页面
查看>>
jsp-session
查看>>
jsp--javabeans
查看>>
上传图片时预览获取图片原始的宽度和size大小
查看>>
web.xml文件的作用及基本配置
查看>>
HTML5头部信息解释
查看>>
angularjs默认选中--包括省市联动的默认选中
查看>>
加载页面时同时触发两个ajax请求,数据显示的顺序不一致
查看>>
浅谈ajax异步和同步加载的区别
查看>>