"Java 힙정렬 구현"의 두 판 사이의 차이

(새 문서: ==개요== ;Java 힙정렬 구현 ;자바 힙정렬 구현 <source lang='Java'> import java.util.Arrays; public class MyClass { private static void heapify(int arr[], int length,...)
 
37번째 줄: 37번째 줄:
* [[힙정렬]]
* [[힙정렬]]


[[분류: Java]]
[[분류: Java 정렬]]
[[분류: 정렬]]

2018년 8월 26일 (일) 01:54 판

1 개요

Java 힙정렬 구현
자바 힙정렬 구현
import java.util.Arrays;
public class MyClass {
    private static void heapify(int arr[], int length, int i) {
        int left = 2*i + 1, right = 2*i + 2;
        int temp, largest = i;
        if( left<length && arr[left]>arr[largest]) largest = left;
        if( right<length && arr[right]>arr[largest]) largest = right;
        if( largest != i ) {
            temp = arr[i]; arr[i] = arr[largest]; arr[largest] = temp;
            heapify(arr, length, largest);
        }
    }
    private static void heap_sort(int arr[]) {
        int i, temp, length = arr.length;
        for(i=length/2-1; i>=0; i--) heapify(arr, length, i);
        for(i=length-1; i>=0; i--) {
            temp = arr[0]; arr[0] = arr[i]; arr[i] = temp;
            heapify(arr, i, 0);
        }
    }
    public static void main(String args[]) {
        int arr[] = {3,4,2,1,7,5,8,9,0,6,100,10};
        heap_sort(arr);
        System.out.println( Arrays.toString(arr) );
        // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100]
    }
}

2 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}