일이 없으면 빠른 순서를 정하고 좀 복잡한 순서를 복습해라!

1294 단어 빠른 정렬
아휴, 그래도 브레이크를 걸고 천천히 디버깅을 해 봤는데...


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]);
	}
	
}


좋은 웹페이지 즐겨찾기