欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

快速排序

程序员文章站 2022-03-24 13:07:29
...

比较简洁的快排,记录一下,个人觉得不懂得话可以以debug模式运行一下,很清楚。

public void quickSort(int[] array, int low, int high){
	if(low > high){
		return;
	}
	int i,j,index;
	i = low;
	j = high;
	index = array[i];  // 用子表的第一个做基准
	while(i < j){
		while(i<j && array[j] >= index){
			j--;
		}
			array[i] = array[j];
			array[j] = index;
		
		while(i<j && array[i] <= index ){
			i++;
		}
			array[j] = array[i];
			array[i] = index; 			
	}
	quickSort(array, low, i-1);
	quickSort(array, i+1, high);
}

public void dealQuickSort(int[] array){
	quickSort(array, 0, array.length-1);
}

public static void main(String[] args) {
	int[] arr = {4,5,3,0,2,8,1,4,4};  // 
	QuickSort qs = new QuickSort();
	qs.dealQuickSort(arr);
	System.out.println(Arrays.toString(arr));
}

}