高速排序(Java版)
package com.love.test; import java.util.Scanner; /** * @author huowolf *高速排序实现 *快排是十分优秀的排序算法。*核心:分治法(1.选基元2.分区3.递归子列) */ public class QuickSort { public static void quickSort(int[] arr,int start ,int end) { if(start<end) { int i=start, j=end, x=arr[start];//基元 while(i<j) { //从右向左扫描小于x的数 while(i<j && arr[j]>=x) j--; if(i<j) arr[i++]=arr[j]; //从左向右扫描大于x的数 while(i<j && arr[i]<=x) i++; if(i<j) arr[j--]=arr[i]; } arr[i]=x;//在最后一个位置中填入基准数 quickSort(arr, start, end-1);//递归 quickSort(arr, start+1, end); } } public static void main(String[] args) { int[] arr = new int [10]; System.out.println("请依次输入十个整数:"); Scanner s = new Scanner(System.in); for(int i=0;i<10;i++) { arr[i] = s.nextInt(); } System.out.println("排序前的顺序为:"); for(int i=0;i<10;i++) { System.out.print(arr[i]+" "); } quickSort(arr, 0, arr.length-1); System.out.println("\n排序后的顺序为:"); for(int i=0;i<10;i++) { System.out.print(arr[i]+" "); } } }
參考一位大牛的博文,讲的非常好,博文地址:http://blog.csdn.net/morewindows/article/details/6684558
加油,自己!!