You are on page 1of 1

1) In blocul de cod de mai jos prezentam cum se defineste un heap ca vector si c

ateva metode ajutatoare


const int MAX_HEAP_SIZE = 16384;
typedef int Heap[MAX_HEAP_SIZE];
inline int father(int nod) {
return nod / 2;
}
inline int left_son(int nod) {
return nod * 2;
}
inline int right_son(int nod) {
return nod * 2 + 1;
}

2) Cautarea maximului :
inline int max(Heap H) {
return H[1];
}

3) Sortarea unui vector (heapsort) :


void heapsort(Heap H, int N) {
build_heap(H, N);
// Sorteaza vectorul.
for (int i = N; i >= 2; --i) {
swap(H[1], H[i]);
sift(H, i - 1, 1);
}
}

You might also like