신규 블로그를 만들었습니다!
힙 정렬 Heap sort
이론적인것이 궁금하다면?
2018/04/29 - [Algorithm] - 자료구조 :: 힙 정렬 Heap sort (c/c++ 구현)
힌트
힙트리를 이용하여 정렬을 한다.
코드 구현
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++ 구현)
2018/04/28 - [Algorithm] - 자료구조 :: 퀵 정렬 Quick sort (c/c++ 구현)
2018/05/02 - [Algorithm] - 자료구조 :: JAVA를 이용한 퀵 정렬, Quick Sort, 퀵 소트 (JAVA 구현)
'Algorithm' 카테고리의 다른 글
자료구조 :: JAVA를 이용한 퀵 정렬, Quick Sort, 퀵 소트 (JAVA 구현) (3) | 2018.05.02 |
---|---|
알고리즘 :: 다이나믹 프로그래밍(DP) - 피보나치(Fibonacci) C/C++ 구현, 메모이제이션 (4) | 2018.05.02 |
알고리즘 :: 이진트리와 순회 전위순회(preorder), 중위 순회(inorder), 후위 순회(postorder) C/C++ 구현 (6) | 2018.05.01 |
알고리즘 :: 크루스칼 알고리즘 Kruskal Algorithm (C/C++ 구현) (3) | 2018.05.01 |
알고리즘 :: Union Find(Disjoint-Set) 알고리즘, 합 집합 찾기 알고리즘 (C/C++ /JAVA 구현) (4) | 2018.04.30 |
최근댓글