퀵 정렬(quick sort)

전.java / / 2021. 2. 8. 21:04
728x90
import java.io.*;
class Sort{
	void swap(int v[], int i, int j) {
		int temp;
		temp = v[i];
		v[i] = v[j];
		v[j] = temp;
	}
	public void Qsort(int a[], int left, int right) {
		int pe;
		int i, last;
		
		if(left >= right) return;
		pe = (left+right)/2;   //pe = partition element
		swap(a, left, pe);
		last = left;
		for(i=left+1; i<=right; i++)
			if(a[i]<a[left]) swap(a, ++last, i);
		swap(a, left, last);
		Qsort(a, left, last-1);
		Qsort(a, left+1, right);
	}
	public static void main(String[] args) throws java.io.IOException{
		BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
		int[] arr = new int [10];
		int a=-1, i=0;
		while(true) {
			if (a==0) break;
			a = Integer.parseInt(input.readLine());
			arr[i++]=a;
		}
		Sort s = new Sort();
		s.Qsort(arr, 0, arr.length-1);
		for(int j : arr)
			if(j!=0)
				System.out.println(j);
	}
}

반응형

'전.java' 카테고리의 다른 글

메소드 오버라이딩  (0) 2021.02.09
클래스 상속  (0) 2021.02.09
외부 클래스 (인스턴스 메소드, 정적 메소드)  (0) 2021.02.08
외부 클래스  (0) 2021.02.08
메소드 중복  (0) 2021.02.08
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기