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

快速排序(Java实现)

程序员文章站 2022-03-24 18:29:57
...

基本思想:

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

 

代码实现:

//测试代码
public static void main(String[] args) {
	int[] arr = {3,3,1,2,33,11,33};
	quickSort(arr,0,arr.length-1);
	System.out.println(Arrays.toString(arr));
}
//快速排序
public static void quickSort(int[] arr,int low,int high){
	if(low>=high){
		return ;
	}
	int start = low;
	int end = high; 
	int base = arr[low];
	while(start<end){
		while(start<end && arr[end]>=base){
			end--;
		}
		if(arr[end]<=base){
			int temp = arr[end];
			arr[end] = arr[start];
			arr[start] = temp;
		}
		while(start<end && arr[start]<=base){
			start++;
		}
		if(arr[start]>=base){
			int temp = arr[end];
			arr[end] = arr[start];
			arr[start] = temp;
		}
	}
	quickSort(arr, low, start-1);
	quickSort(arr, end+1, high);
}
	

 

 

学习中,有不正确的地方多多指教

相关标签: 快速排序