您的位置:首页 > 其它

排序算法之快速排序

2012-02-07 21:30 281 查看
public class quickSort {

	public static void main(String[] args) {
		int a[] = {2,4,1,6,78,43,11,57,-2,33,21,58,99,123,53,643,77,40,333,78,8,17};
		for(int i=0; i<a.length; i++ )
			System.out.print(" "+a[i]);
		
		System.out.println("\n"+"****************");
		quickSort(a, 0, a.length-1);
		
		for(int i=0; i<a.length; i++ )
			System.out.print(" "+a[i]);
	}

	public static void quickSort(int[] a, int low, int high) {
		int pos;
		
		if(low < high){
			pos = findPos(a, low, high);
			quickSort(a, low, pos-1);
			quickSort(a, pos+1, high);
		}
	}

	public static int findPos(int[] a, int low, int high) {
		
		int val = a[low];
		
		while(low < high){
			
			while(a[high] >= val && low < high )
				high--;
			a[low] = a[high];
			
			while(a[low] <=val && low < high )
				low++;
			a[high] = a[low];
		}
		a[low] =val;
		return low;
	}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: