java 数据结构

java快速排序原理:
   通过一次排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列.


public class Quicksort {

	public static void main(String[] args) {
		int[] pData = { 1, 84, 85, 67, 600, 88, 999 };
		sortArray(pData, 0, pData.length - 1);
		for (int k : pData) {
			System.out.print("\t "+k);
		}
	}

	public static void sortArray(int[] array,int left,int right) {
		int i=left,j=right;
		int middle,temp;
		middle=array[(left+right)/2];
		do {
			while (array[i]<middle && i<=j) {
				i++;
			}
			while (array[j]>middle && j>i) {
				j--;
			}
			if (i<=j) {
				temp=array[i];
				array[i]=array[j];
				array[j]=temp;
				i++;
				j--;
			}
		} while (i<=j);
		for (int k = 0; k < array.length; k++) {
			System.out.print("\t"+array[k]);
		}
		System.out.println();
		if (left<j) {
			sortArray(array, left, j); //递归
		}
		if (right>i) {
			sortArray(array, i, right);//递归
		}
	}
}

你可能感兴趣的:(java 快速排序)