`
only_java
  • 浏览: 109853 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

没事整了个快速排序,温习下稍复杂点的递归!

    博客分类:
  • j2se
 
阅读更多
哎,还是靠断点慢慢给调试出来了。。。。。

package test;

public class QuickSort {

	int[] arr={49,38,65,97,10,40,87,76,13,27};
	
	public void sort(int start,int end,int key)
	{
		if(start>=(arr.length-1) || end<=0)
			return;
		if(start==end)
		{
			int left1=0;
			int right1=start-1;
			int newkey1=arr[left1];
			sort(left1,right1,newkey1);
			
			int left2=start+1;
			int right2=arr.length-1;
			int newkey2=arr[left2];
			sort(left2,right2,newkey2);
			return;
		}
		
		while(arr[end]>key && start<end)
			end--;
		
		while(arr[start]<key && start<end)
			start++;
		
		int temp=arr[start];
		arr[start]=arr[end];
		arr[end]=temp;
		
	    sort(start,end,key);
	}
	
	
	public void sortAll(int start,int end,int key)
	{
		sort(start,end,key);
		for(int i:arr)
		 System.out.print(i+" ");
		
	
	}
	
	public static void main(String[] args)
	{
		QuickSort qs=new QuickSort();
		
		qs.sortAll(0, qs.arr.length-1,qs.arr[0]);
	}
	
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics