赞
踩
package util;
public class Pub {
public static void beforeSort(int[] arr){
System.out.println("before sort: ");
for(int i:arr){
System.out.print(i+" ");
}
System.out.println();
}
public static void afterSort(int[] arr){
System.out.println("after sort: ");
for(int i:arr){
System.out.print(i+" ");
}
}
}
以0位为基准 代码如下:
package swap;
import java.util.Arrays;
import util.Pub;
public class FastSort {
/**
* @param args
*/
public static void main(String[] args) {
int[] a={1,38,65,97,76,13,27};
Pub.beforeSort(a);
quick(a);
Pub.afterSort(a);
}
private static int getMiddle(int[] arr,int left,int right){
int base=arr[left]; //关键一点 当从左边第一个数作为基数的时候,先从右边开始判断
while(left
while(left=base){
right--;
}
arr[left]=arr[right];
while(left
left++;
}
arr[right]=arr[left];
}
arr[left]=base;
return left;
//System.out.println(left);
}
private static void quickSort(int[] a, int low, int high) {
if(low
int middle = getMiddle(a,low,high);
quickSort(a, 0, middle-1);
quickSort(a, middle+1, high);
}
}
private static void quick(int[] a) {
if(a.length>0){
quickSort(a,0,a.length-1);
}
}
}
运行结果:
before sort:
1 38 65 97 76 13 27
after sort:
1 13 27 38 65 76 97
以末尾为基准,代码如下:
package swap;
import java.util.Arrays;
import util.Pub;
public class FastSortReverse {
/**
* @param args
*/
public static void main(String[] args) {
int[] a={1,38,65,97,76,13,27};
Pub.beforeSort(a);
quick(a);
Pub.afterSort(a);
}
private static int getMiddle(int[] arr,int left,int right){
// 关键一点 选数组哪边开始作为基数点进行比较,需要从另一头开始进行判断,否则会进行错误的替换。
int base=arr[right];
while(left
while(left
left++;
}
arr[right]=arr[left];
while(left=base){
right--;
}
arr[left]=arr[right];
}
//因为这种方法 总是会将最初的base基准数字覆盖掉,所以 需要找到合适的地方,放入基准数字。
arr[left]=base;
return left;
//System.out.println(left);
}
private static void quickSort(int[] a, int low, int high) {
if(low
int middle = getMiddle(a,low,high);
quickSort(a, 0, middle-1);
quickSort(a, middle+1, high);
}
}
private static void quick(int[] a) {
if(a.length>0){
quickSort(a,0,a.length-1);
}
}
}
运行结果:
before sort:
1 38 65 97 76 13 27
after sort:
1 13 27 38 65 76 97
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。