Java教程

Java快排

本文主要是介绍Java快排,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
public static void quickSort(int[] arr, int start, int end){
	//递归退出条件
	if(start>=end){
		return;
	}
	int i,j,temp;
	i = start;//i为头指针
	j = end;//j为尾指针
	temp = arr[start];//temp为轴元素
	while(i<j){
		//j指针先动,找到比轴元素小的元素
		while(i<j && arr[j]>=temp){
			j--;
		}
		while(i<j && arr[i]<=temp){
			i++;
		}
		if(i<j){
			arr[i]=arr[i]^arr[j];
			arr[j]=arr[i]^arr[j];
			arr[i]=arr[i]^arr[j];
		}
	}
	arr[start] = arr[i];
	arr[i] = temp;
	quickSort(arr,j+1,end);
	quickSort(arr,start,j-1);
}
这篇关于Java快排的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!