Java算法快速排序
来源:互联网 发布:云计算发展方向 编辑:程序博客网 时间:2024/06/03 06:33
快速排序的原理:每次将序列以一个值为界限分成两组,再将得到的两个序列分别以一个界限分成两组变成四组这样一直分下去。
int[] a = {11,222,44,63,84,11,24,53,123,25,98,76,34};
第一步:以34将数组a分成两组 11, 25, 24, 11 34, 63, 44, 53, 123, 222, 98, 76, 84
第二步:以11将11, 25, 24, 11分为两组 11, 11, 24, 25。以84将34, 63, 44, 53, 123, 222, 98, 76, 84分为两组34, 63, 44, 53, 76, 84 98, 123, 222。
这样一直循环下去直到不能再分。
package test;import java.util.Arrays;public class QuickSort {public void partition(int[] arrays, int left, int right) {if ( right == 0 || left >= right){return;}int oldLeft = left;int oldRight = right;int median = arrays[right];right = right -1;// 拿出数组最后一个词作为界限,数组的最后一个本身不参与比较while (left<right) {while (left < right && arrays[left] < median){left++;};while (left < right && arrays[right] >= median){right--;};int temp = arrays[right];arrays[right] = arrays[left];arrays[left] = temp;}if(arrays[oldRight] < arrays[right]){arrays[oldRight] = arrays[right];arrays[right] = median;}partition(arrays,oldLeft,left);partition(arrays,right+1,oldRight);}public static void main(String[] args) {int[] a = { 11, 222, 44, 63, 84, 11, 24, 53, 123, 25, 98, 76, 34 };new QuickSort().partition(a,0,a.length-1);System.out.println(Arrays.toString(a));}}
0 0
- java快速排序算法
- Java快速排序算法
- Java快速排序算法
- Java快速排序算法
- java快速排序算法
- java快速排序算法
- JAVA快速排序算法
- java快速排序算法
- 快速排序算法(java)
- java快速排序算法
- java 快速排序算法
- Java算法快速排序
- java 快速排序 算法
- java快速排序算法
- java 快速排序 算法
- Java快速排序算法
- 快速排序算法java
- JAVA快速排序算法
- 花果山装腔指南
- 常用的Java代码汇总
- UVa 558 - Wormholes(spfa判断负环)
- android 遇到unable to resolve superclass of 类的问题
- poj 2593
- Java算法快速排序
- ARM参数传递
- wine
- 你还在用模拟器测试Android应用吗?OUT了,教你用真机测试(原创)
- 区分Activity的四种加载模式----以及Intent的setFlags
- 2014.5.29 JFinal 拦截器
- C++必知必会(6)
- 日记
- Java中的Enum的使用与分析