JaeUng
by JaeUng
~1 min read

Categories

Quick Sorting(퀵정렬) ?

퀵정렬이미지

구현 코드(Java)

package Sort;

public class QuickSort {
	/** Quick Sort !! 퀵 정렬  ... 2019.07.09
	 * */
	public static void quickSort(int[] arr) {
		quickSort(arr,0,arr.length-1);
	}
	public static void quickSort(int[] arr, int start, int end ) {
		int p = partition(arr, start , end);
		if(start < p -1 ) {
			quickSort(arr,start,p-1);
		}
		if(p < end) {
			quickSort(arr,p,end);
		}
	}
	public static int partition(int[] arr, int start, int end){
		int pivot = start;
		int left = start;
		int right = end;
		while(left<=right) {
			while(arr[pivot] > arr[left]) {
				left++;
			}
			while(arr[pivot] < arr[right]) {
				right--;
			}
			if(left <= right) {
				swap(arr,left,right);
				left++;
				right--;
			}
		}
		return left;
	}

	public static void swap(int[] arr, int start, int end) {
		int tmp = arr[start];
		arr[start] = arr[end];
		arr[end] = tmp;
	}
	public static void main(String[] args) {
		int[] arr=  {3,9,4,7,5,0,1,6,8,2};
		quickSort(arr);
		for (int i = 0; i < arr.length; i++) {
			System.out.printf("%d\t",arr[i]);
		}
	}
}


퀵정렬이미지

퀵소트 / Quick Sorting