博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
快速排序——Java
阅读量:5941 次
发布时间:2019-06-19

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

快排的思想想必大家都懂,前后两个指针,向中间靠拢。我这个partition函数能保证所有相同的数都被比较一次,靠拢在一起。

代码:

 

public class Main {          public static int[] partition1(int[] arr, int begin, int end, int pivotValue) {        int small = begin-1;        int cur = begin;        int big = end+1;                while(cur!=big) {            if(arr[cur] < pivotValue) {                swap(arr, ++small, cur++);            } else if(arr[cur] > pivotValue) {                swap(arr, cur, --big);            } else {                cur++;            }        }                int[] range = new int[2];        range[0] = small;        range[1] = big;                return range;    }        public static void quickSort(int[] array,int low, int high) {        if(array == null || array.length==0) {            return;        }                if(low>=high) {            return;        }                int[] res = partition1(array, low, high, array[low]);        quickSort(array, low, res[0]);        quickSort(array, res[1], high);    }    public static void main(String[] args) {        int[] a = {34,2,25,1,12,34,12,56,23,15,34,12,12,54,34};        quickSort(a, 0, a.length-1);        for(int i=0; i

 

转载于:https://www.cnblogs.com/loren-Yang/p/7499689.html

你可能感兴趣的文章
Oracle调优总结
查看>>
Springboot - -web应用开发-Servlets, Filters, listeners
查看>>
正态分布
查看>>
[TFRecord文件格式]基本介绍
查看>>
SSM项目整合Quartz
查看>>
rabbitmq安装集群
查看>>
ZOJ2158,POJ1789
查看>>
[转]C#多线程学习(四) 多线程的自动管理(线程池)
查看>>
shell 脚本
查看>>
世界在音乐中得到了完整的再现和表达。
查看>>
数据分析推荐书籍
查看>>
平衡的括号
查看>>
iphone 使用popViewController如何避免内存泄露
查看>>
Redis和MySQL数据同步及Redis使用场景
查看>>
字符串最小编辑距离
查看>>
关于编程
查看>>
Oracle Database 快捷版 安装 连接
查看>>
java-数组排序--冒泡排序、鸡尾酒排序、地精排序
查看>>
bzoj3876
查看>>
bzoj3996
查看>>