void main() {
print('Hello world! - dart.jsrun.net');
List<int> nums = [9, 2, 8, 5, 20, 5, 8];
List<int> arr = [62, 88, 58, 47, 35, 73, 51, 99, 37, 93];
buildHeap(arr);
print('$arr');
}
buildHeap(List<int> datas) {
int l = datas.length;
for(int i = (l / 2).floor(); i>=0; i--) {
sortHeap(datas, i, l);
}
return sortHeap;
}
sortHeap(List<int> datas, int i, int len) {
int child = 2*i + 1;
while(child < len) {
int temp = datas[i];
if(child+1 < len && datas[child] < datas[child + 1]) {
child += 1;
}
if(datas[i] < datas[child]) {
datas[i] = datas[child];
datas[child] = temp;
i = child;
child = 2*i + 1;
} else {
break;
}
}
}