본문 바로가기

2. 알고리즘 공부/JAVA 기본 알고리즘 구현

2. Quick Sort(퀵정렬)

public class QuickSort {
	static void quickSort(int [] nums, int s, int e) {
		int index = partition(nums, s, e);
		if (s < index - 1) quickSort(nums, s, index-1);
		if (e > index) quickSort(nums, index, e);
	}
	static int partition(int [] nums, int s, int e) {
		int pivot = nums[(s+e)/2];
		while(s <= e) {
			while(nums[s] < pivot) s++;
			while(nums[e] > pivot) e--;
			if (s <= e) {
				int temp = nums[s];
				nums[s] = nums[e];
				nums[e] = temp;
				s++;
				e--;
			}
		}
		return s;
	}
}