java快速排序

package javaio.recursion;

import java.util.Arrays;

public class Quiklysort {

	public static void main(String[] args) {
		int []a=new int[]{1,8,8,7,4,6,9,4,5,1};
		sort(a);
		System.out.println(Arrays.toString(a));

	}
	public static void sort(int[] nums) {
		Qsort(nums,0,0,nums.length-1);
	}
	
	public static void Qsort(int[] nums,int ba,int start,int end) {	
		int size=end-start;
		int s=start;
		int e=end;

		while(start<end) //0<9
		{
			while(nums[end]>=nums[ba]&&end!=ba)  
				end--;
			if(nums[end]<nums[ba]) {
				int tmp=nums[end];
				nums[end]=nums[ba];
				nums[ba]=tmp;
				ba=end;
			    start++;
			}

			while(nums[start]<=nums[ba]&&start!=ba)
				start++;
			if(nums[start]>nums[ba])
			{
				int tmp=nums[start];
				nums[start]=nums[ba];
				nums[ba]=tmp;
				ba=start;
				end--;
			}
		}
		if(size<=1)
			return;
		if(ba-1!=s)
		   Qsort(nums,s,s,ba-1);
		if(ba+1!=e)
		   Qsort(nums,ba+1,ba+1,e);
	}

}
posted @ 2022-04-02 10:45  Reisen7  阅读(15)  评论(0)    收藏  举报  来源