java递归快排

阅读 56

2022-03-14

public class QuickSort {
	/**
	* 快速排序
	* @param strDate
	* @param left
	* @param right
	*/
	public void quickSort(String[] strDate,int left,int right){
			String middle,tempDate;
			int i,j;
			i=left;
			j=right;
			middle=strDate[(i+j)/2];
			do{
				while(strDate[i].compareTo(middle)<0&& i<right)
					i++; //找出左边比中间值大的数
				while(strDate[j].compareTo(middle)>0&& j>left)
					j--; //找出右边比中间值小的数
				if(i<=j){ //将左边大的数和右边小的数进行替换 
					tempDate=strDate[i];
					strDate[i]=strDate[j];
					strDate[j]=tempDate;
					i++;
					j--;
				}
			}while(i<=j); //当两者交错时停止
	
			if(i<right){
				quickSort(strDate,i,right);//从
			}
			if(j>left){
				quickSort(strDate,left,j);
			}
	}

}

精彩评论(0)

0 0 举报