목차
본문내용
int p,c;
노드의 첫째값에 사이즈만큼 내려간 노드의 값을 대입
사이즈를 하나 줄인다.
p=1;
c=2*p;//변수를 정의한 후
while(c가 사이즈보다 작은 동안)
{
if(c가 사이즈보다 작고, 그 키 값이 그 노드의 부모보다 크면)
하나씩 밑으로더 내려간다.
if(부모노드가 자식보다 크면)
break;
부모의 값을 새로운 변수 t에 저장
자식을 부모에 저장
부모는 자식이 된다.
c를 p에 대입
다시 c를 구한다.
}
}
}
void HeapSort(heap H)
{
int i,p,c;
HeapData t;
while(트리 사이즈가 1보다 클 동안)
{
부모를 변수 t에
자식은 부모에
t는 다시 자식이 된다
size를 하나씩 줄임으로 위로 올라간다.
p=1;
c=2*p;//변수 정의
while(사이즈가 c보다 클 동안)
{
if(그 높이에서의 자식노드가 부모노드보다 크면)
하나씩 c를 증가
else break;
t=H.node[p];
H.node[p]=H.node[c];
H.node[c]=t;//swapping
p=c;
c=2*p;//변수 재정의
}
}
for(i=0;i
사이즈 만큼 루프를 돌리며 정렬된 데이터를 출력
}
노드의 첫째값에 사이즈만큼 내려간 노드의 값을 대입
사이즈를 하나 줄인다.
p=1;
c=2*p;//변수를 정의한 후
while(c가 사이즈보다 작은 동안)
{
if(c가 사이즈보다 작고, 그 키 값이 그 노드의 부모보다 크면)
하나씩 밑으로더 내려간다.
if(부모노드가 자식보다 크면)
break;
부모의 값을 새로운 변수 t에 저장
자식을 부모에 저장
부모는 자식이 된다.
c를 p에 대입
다시 c를 구한다.
}
}
}
void HeapSort(heap H)
{
int i,p,c;
HeapData t;
while(트리 사이즈가 1보다 클 동안)
{
부모를 변수 t에
자식은 부모에
t는 다시 자식이 된다
size를 하나씩 줄임으로 위로 올라간다.
p=1;
c=2*p;//변수 정의
while(사이즈가 c보다 클 동안)
{
if(그 높이에서의 자식노드가 부모노드보다 크면)
하나씩 c를 증가
else break;
t=H.node[p];
H.node[p]=H.node[c];
H.node[c]=t;//swapping
p=c;
c=2*p;//변수 재정의
}
}
for(i=0;i
}