CS153/hw4/hw4programs/heap.oat
jmug b24a264f7e Update hw4 to a newer version.
Signed-off-by: jmug <u.g.a.mariano@gmail.com>
2025-01-24 21:01:32 -08:00

53 lines
864 B
Text

void min_heapify(int[] array, int i, int len) {
var l = i * 2;
var r = i + 1;
var tmp = 0;
var m = i;
if (l < len) {
if (array[l] > array[m]) {
m = l;
}
}
if (r < len) {
if (array[r] > array[m]) {
m = r;
}
}
if (m != i) {
tmp = array[i];
array[i] = array[m];
array[m] = tmp;
min_heapify(array, m, len);
}
return;
}
void make_min_heap(int[] array, int len) {
for (var i = len; i >= 1; i = i - 1;) {
min_heapify(array, i, len);
}
return;
}
int program(int argc, string[] argv) {
var array = new int[]{ 0, 9, 1, 2, 8, 10, 7, 3, 6, 4, 5 };
var end_result = new int[]{ 0, 1, 4, 2, 8, 5, 7, 3, 6, 9, 10 };
make_min_heap(array, 10);
var same = 0;
for (var i = 0; i < 11; i = i + 1;) {
if (array[i] != end_result[i]) {
same = 1;
}
}
return same;
}