Java 快速排序
来源:互联网 发布:剑倚天下魔刃进阶数据 编辑:程序博客网 时间:2024/06/16 00:32
快速排序的思想,就是将一个数组用一个基准值将数组分为两部分,其中一部分的所有数字都比这个基准值大,另一部分都比基准值小。对这两分份采用同样的方法处理,知道最后处理的数组个数为一个,则数组就是有序的。
public class QuickSort {public static void main(String[] args) {int[] arr={3,5,2,1,5,6,6,2,4,7,22,35,77,11,66,2,44,55,33,44,663,64363,235,234,66,25,67,235,6,25};quickSort(arr,0,arr.length-1);for(int a:arr)System.out.print(a+",");}public static void quickSort(int[] arr,int start,int end){if(start>=end)return;//以最左边的数字为基准int keyValue = arr[start];int leftPtr = start;int rightPtr = end;while(leftPtr<rightPtr){//从右往左扫描,当扫描到比基准值大的值,或者左边指针大于右边指针,while(rightPtr>leftPtr&&arr[rightPtr]<=keyValue)rightPtr--;//如果是因为扫描到比基准值大的数字而结束循环,则交换数字if(arr[rightPtr]>keyValue){int temp = arr[rightPtr];arr[rightPtr] = keyValue;arr[leftPtr] = temp;}//从左向右扫描while(leftPtr<rightPtr&&arr[leftPtr]>=keyValue)leftPtr++;if(arr[leftPtr]<keyValue){int temp = arr[leftPtr];arr[leftPtr] = keyValue;arr[rightPtr] = temp;}}quickSort(arr,start,leftPtr-1);quickSort(arr,rightPtr+1,end);}}输出结果:
64363,663,235,235,234,77,67,66,66,55,44,44,35,33,25,25,22,11,7,6,6,6,5,5,4,3,2,2,2,1,
0 0
- 排序-快速排序-Java
- java排序之快速排序
- Java排序算法 快速排序
- 快速排序(java排序)
- java 快速排序,冒泡排序
- 算法:排序----Java快速排序
- 【交换排序】快速排序--Java
- java 插入排序+快速排序
- Java 排序之 快速排序
- java排序之快速排序
- Java排序算法:快速排序
- Java排序-快速排序
- Java排序算法:快速排序
- Java排序算法--》快速排序
- JAVA排序算法---快速排序
- Java 快速排序 归并排序
- Java排序算法--快速排序
- java 冒泡排序、快速排序
- android 动画之---位移抛物线
- 资源
- 【软件测试】面向对象的软件测试
- Win7开启共享无线网络
- 简单解决RecyclerView嵌套的RecyclerView条目显示不全和宽度不能铺满
- Java 快速排序
- 创建第一个HTML文件
- js中空字符串和数值0作逻辑对比时应该注意的问题。
- html5中的拖放
- 数组拼接技巧
- 浅谈逆元&费马小定理
- ver0.83--readMNIST.m
- Visual Studio 2015 update 3各版本下载地址
- 001HTC VIVE GUI界面