博客
关于我
快速排序
阅读量:388 次
发布时间:2019-03-05

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

快速排序–java

package algorithm;import java.util.Arrays;public class QuickSort {    public static void main(String[] args) {        //定义数组        int[] arr = {6, 3, 7, 9, 5, 1, 4, 8};        //调用方法,进行快速排序        quickSort(arr, 0, arr.length - 1);//        System.out.println(Arrays.toString(arr));        for (int i = 0; i < arr.length; i++){            System.out.println(arr[i] + " ");        }    }    public static void quickSort(int[] arr, int left, int right){        if(left > right){            return;        }        //定义变量保存的基准数        int base = arr[left];        //定义变量i,指向最左边        int i = left;        //定义变量j,指向最右边        int j = right;        //当i和j不相遇的时候,在循环中进行检索        while (i != j){            //先由j从右往左检索比基准数小的,如果检索到比基准数小的就停下            while (arr[j] >= base && i < j){                j--;            }            //先由i从左往右检索比基准数大的,如果检索到比基准数大的就停下            while (arr[i] <= base && i < j){                i++;            }            //代码走到这里,i停下了,j也停下了。然后交换i和j位置的元素            int temp = arr[i];            arr[i] = arr[j];            arr[j] = arr[i];        }        //如果上面while循环的条件不成立,会跳出这个循环,往下执行        //如果这个条件不成立说明        //如果i和j相遇,就交换基准数这个元素和相遇位置的元素。        //把相遇位置的元素赋值给基准数这个位置的元素        arr[left] = arr[i];        //再把基准数赋值给相遇位置的元素        arr[i] = base;        //基准数在这里就归位了,左边的数字都比他小,右边都比他大        //排基准数的左边        quickSort(arr,left,i-1);        //排右边        quickSort(arr,j+1,right);    }}

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

你可能感兴趣的文章
ACM/NCPC2016 C Card Hand Sorting(upc 3028)
查看>>
ubuntu学习笔记-常用文件、命令以及作用(hosts、vim、ssh)
查看>>
SLAM学习笔记-求解视觉SLAM问题
查看>>
普歌-允异团队-HashMap面试题
查看>>
还在一个一个手动安装虚拟机吗?Cobbler自动部署装机一键最小化安装打把游戏就好了
查看>>
程序员应该知道的97件事
查看>>
create-react-app路由的实现原理
查看>>
Linux环境变量配置错误导致命令不能使用(杂谈)
查看>>
openstack安装(九)网络服务的安装--控制节点
查看>>
shell编程(六)语言编码规范之(变量)
查看>>
vimscript学习笔记(二)预备知识
查看>>
SSM项目中遇到Could not autowire. No beans of ‘XXX‘ type found.错误
查看>>
Android数据库
查看>>
HTML基础,块级元素/行内元素/行内块元素辨析【2分钟掌握】
查看>>
STM8 GPIO模式
查看>>
omnet++
查看>>
23种设计模式一:单例模式
查看>>
Qt中的析构函数
查看>>
C语言实现dijkstra(adjacence matrix)
查看>>
三层框架+sql server数据库 实战教学-徐新帅-专题视频课程
查看>>