53 lines
864 B
Text
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;
|
|
}
|