ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바 퀵 정렬
    알고리즘 2017. 11. 22. 15:16
    // 값을 비교하고 로우와 하이를 이동시키면서 값의 교환이 이루어지는 함수
    public static int partition(int arr[], int left, int right) {
     
        int pivot = arr[(left + right) / 2];
     
        while (left < right) {
            while ((arr[left] < pivot) && (left < right))
                left++;
            while ((arr[right] > pivot) && (left < right))
                right--;
     
            if (left < right) {
                int temp = arr[left];
                arr[left] = arr[right];
                arr[right] = temp;
            }
        }
     
        return left;
    }
     
     
    public static void quickSort(int arr[], int left, int right) {
     
        if (left < right) {
            // 값을 비교하고 로우와 하이를 이동시키면서 값의 교환이 이루어지는 함수
            int pivotNewIndex = partition(arr, left, right);
            // quick sort의 설명중
            // 자주 나오는 '재귀', '분할' 이라고 설명되어지는 부분이다.
            quickSort(arr, left, pivotNewIndex - 1);
            quickSort(arr, pivotNewIndex + 1, right);
        }
     
    }
     
    // 
    public static void main(String[] args) {
        int[] arrs = { 69103021683122 };
        quickSort(arrs, 0, arrs.length - 1);
        System.out.println("결과");
     
        for (int i : arrs) {
            System.out.print(i + " ");
        }
    }



    출처: http://yamea-guide.tistory.com/115 [기타치는 개발자의 야매 가이드]

    '알고리즘' 카테고리의 다른 글

    이분 검색  (0) 2016.04.02
    마방진(홀수 계산식)  (0) 2016.04.02
Designed by Tistory.