..
힙 정렬 요소의 수백만 또한 구성된 대형 데이터 세트에 대한 탁월한 선택입니다. 영어 용어 힙는 힙 또는 모든 노드가 특정 속성을 따라있는 바이너리 트리라는 구조를 그것을 사용하여 '힙'와 알고리즘을 의미합니다.
첫 번째 단계는 첫 번째 데이터의 전체 더미를 만든 다음 정렬 배열의 말에 그들을 장소로 큰 항목을 제거하는 것입니다. 가장 큰 요소를 제거 후, 알고리즘은 힙을 reconstructs 다시 정렬의 올바른 위치에 그들을 배치, 큰 항목을 제거합니다. 더 이상의 힙의 요소 정렬 배열이 완료가 없을 때까지이 반복됩니다.
알고리즘의 기본 구현은 두 배열, 힙 및 주문 항목을 처리하기 위해 하나를 관리하기위한 하나의 구성
정수 / / 배열
개인 INT [] = 새로운 INT [100];
배열 요소의 / / 번호
개인 INT의 X;
공공 공극 heapsort ()
{
INT I;
INT 온도;
위한은 (i = (X / 2) - 1, 난> = 0, I -)
{
ScorriNodi (I, X);
}
(- 1, 난> = 1, 난 - = X)에 대한
{
TEMP = [0];
[0] = [I];
[전] = 온도;
ScorriNodi (0, 난 - 1);
}
}
공공 무효 ScorriNodi (INT 루트, INT valoreMinore)
{
BOOL은 = false를 완료;
figlioMaggiore INT;
INT 온도;
{
경우 (루트 * 2 == valoreMinore)
figlioMaggiore = 루트 * 2;
다른 경우 ([루트 * 2]> [루트 * 2 + 1])
figlioMaggiore = 루트 * 2;
다른
figlioMaggiore = 루트 * 2 + 1;
경우 ([루트] <[figlioMaggiore])
{
TEMP = [루트];
[루트]에 = [figlioMaggiore];
로 [figlioMaggiore] = 온도;
루트 = figlioMaggiore;
}
또 {= true를 완료;}
}
}