신규 블로그를 만들었습니다!

2020년 이후부터는 아래 블로그에서 활동합니다.

댓글로 질문 주셔도 확인하기 어려울 수 있습니다.

>> https://bluemiv.tistory.com/

정렬 Heap sort

 

이론적인것이 궁금하다면?

2018/04/29 - [Algorithm] - 자료구조 :: 힙 정렬 Heap sort (c/c++ 구현)

 

자료구조 :: 힙 정렬 Heap sort (c/c++ 구현)

힙 정렬 Heap sort 힙 정렬은 힙 트리를 이용해서 정렬을 하는 방법 힙 트리란 트리구조에서 자식노드보다 부모노드가 큰 상태를 뜻한다. 왼쪽 트리를 보면 부모(5)가 자식(2와 3) 보다 크다. 그래서 힙트리이다...

hongku.tistory.com

 

힌트

힙트리를 이용하여 정렬을 한다.

 

코드 구현

package sort;

public class HeapSort {

    private static int[] data;
    private static int number = 10;
    
    public static void heap(int[] data, int number) {
        for(int i=1; i<number; i++) {
            int child = i;
            while(child > 0) {
                int parent = (child-1)/2;
                if(data[child] > data[parent]) {
                    int temp = data[parent];
                    data[parent] = data[child];
                    data[child] = temp;
                }
                child = parent;
            }
        }
    }
    
    
    public static void main(String[] args) {
        data = new int[number];
        for(int i=0; i< number; i++) {
            data[i] = (int)(Math.random() * 100);
        }
        
        System.out.print("정렬 전 : ");
        for(int i=0; i< number; i++) {
            System.out.print(data[i]+ " ");
        }
        
        heap(data, number);
        
        for(int i = number-1; i>0; i--) {
            int temp = data[0];
            data[0] = data[i];
            data[i] = temp;
            
            heap(data, i);
        }
        
        System.out.print("\n정렬 후 : ");
        for(int i=0; i< number; i++) {
            System.out.print(data[i]+ " ");
        }
        
    }
}​

 

 

관련 글

2018/04/29 - [Algorithm] - 자료구조 :: 힙 정렬 Heap sort (c/c++ 구현)

 

자료구조 :: 힙 정렬 Heap sort (c/c++ 구현)

힙 정렬 Heap sort 힙 정렬은 힙 트리를 이용해서 정렬을 하는 방법 힙 트리란 트리구조에서 자식노드보다 부모노드가 큰 상태를 뜻한다. 왼쪽 트리를 보면 부모(5)가 자식(2와 3) 보다 크다. 그래서 힙트리이다...

hongku.tistory.com

2018/04/28 - [Algorithm] - 자료구조 :: 퀵 정렬 Quick sort (c/c++ 구현)

 

자료구조 :: 퀵 정렬 Quick sort (c/c++ 구현)

퀵 정렬 (Quick sort) 특정한 값(Pivot)을 기준으로 큰 숫자와 작은 숫자를 구분하자 '분할 정복' 알고리즘으로 평균속도가 O(N * logN) 이다. 퀵정렬에는 기준이 되는 값이 존재한다. 이때, 기준값을 피봇(pivot)..

hongku.tistory.com

2018/05/02 - [Algorithm] - 자료구조 :: JAVA를 이용한 퀵 정렬, Quick Sort, 퀵 소트 (JAVA 구현)

 

자료구조 :: JAVA를 이용한 퀵 정렬, Quick Sort, 퀵 소트 (JAVA 구현)

퀵 소트 Quick sort 이론적인 내용이 궁금하면 아래 글을 참고 할 것 2018/04/28 - [Algorithm] - 자료구조 :: 퀵 정렬 Quick sort (c/c++ 구현) JAVA를 이용하여 퀵소트를 구현해보자 Pivot을 데이터의 맨 처음..

hongku.tistory.com

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기