博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
18.11.1 - 基础(快速排序)
阅读量:6417 次
发布时间:2019-06-23

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

快速排序

  1. 定义基准值(基本取第一个数)
  2. 在数组的头和尾定义标识符i、j
  3. j从右往左遍历,找到小于等于基准值的数
  4. i从左往右遍历,找到大于等于基准值的数
  5. if(j==i)则与基准值交换,将数组分割为两部分分别递归,else重复3、4步骤
public class Application {    public static void qSort(int[] arr, int head, int tail) {        if (head >= tail || arr == null || arr.length <= 1) {            return;        }        int i = head, j = tail, pivot = arr[(head + tail) / 2];        while (i <= j) {            while (arr[i] < pivot) {                ++i;            }            while (arr[j] > pivot) {                --j;            }            if (i < j) {                int t = arr[i];                arr[i] = arr[j];                arr[j] = t;                ++i;                --j;            } else if (i == j) {                ++i;            }        }        qSort(arr, head, j);        qSort(arr, i, tail);    }    public static void main(String[] args) {        int[] arr = new int[]{
1, 4, 8, 2, 55, 3, 4, 8, 6, 4, 0, 11, 34, 90, 23, 54, 77, 9, 2, 9, 4, 10}; qSort(arr, 0, arr.length - 1); String out = ""; for (int digit : arr) { out += (digit + ","); } System.out.println(out); }}复制代码

转载于:https://juejin.im/post/5bdaad8d5188257f8c45de0d

你可能感兴趣的文章
什么是REST架构(转)
查看>>
搭建 Android 开发环境,初试HelloWorld (win7) (下) (转)
查看>>
混合高斯模型(GMM)推导及实现
查看>>
cocos2d-js 3.0rc0加载游戏引擎时长时间黑屏
查看>>
搜索专题练习
查看>>
Django-MTV模型
查看>>
IE9 Windows7 x64
查看>>
xcode 工具栏中放大镜的替换的简单说明
查看>>
C# 语言规范_版本5.0 (第11章 结构)
查看>>
租用游艇
查看>>
java 集合list遍历时删除元素
查看>>
【PHP原生】两个日期间的相关计算
查看>>
partial关键字的含义
查看>>
虚拟DOM
查看>>
date命令详解
查看>>
Spring MVC 返回Json数据环境记录
查看>>
浅谈C语言中的内存分配
查看>>
方法覆盖
查看>>
怎样简单灵活地将DataTable中的数据赋值给model
查看>>
excel 大文件解析原理实现
查看>>