快速排序


由于暑假实习、一些博客发布在公司内部网站上,在这里就没有发表出来了。
实习回来、自己也很久没有写博客了,今天参加一场比试;考了一个快速排序的题

晚上回来、我在电脑重新实现了一下
下面,我贴下代码吧;可能实习的影响吧、自己开始不习惯写注释了。。。。




package java2014;

public class Quicksort {

	private int pivot;
	
	public static void main(String args[]){
		int[] array = new int[]{2,8,19,32,5,9,8};
		Quicksort sort = new Quicksort();
		sort.print(array);
		sort.qsort(array,0,array.length-1);
		sort.print(array);
	}

	
	public int partition(int[] array,int low, int high){
		pivot = array[low];
		while(low < high){
			while((low < high) && (pivot <= array[high])){
				--high;
			}
			array[low] = array[high];
			
			while((low < high) && (pivot >= array[low])){
				++low;
			}
			array[high] = array[low];
		}
		array[low] = pivot;
		return low;
	}
	
	public void qsort(int[] array, int low, int high){
		if(low < high){
			int pivotloc = partition(array,low,high);
			qsort(array,low,pivotloc-1);
			qsort(array,pivotloc+1,high);
		}
	}
	
	public void print(int[] array){
		for(int a:array){
			System.out.print(a+" ");
		}
		System.out.println();
	}
}




你可能感兴趣的:(数据结构,排序)