bubbledown method
Implementation
bubbledown(int i){
int l=((lchild(i)?.count)??(intMaxValue));
int r=((rchild(i)?.count)??(intMaxValue));
while(map[array[i]]!.count>l||map[array[i]]!.count>r){
if(r>l){
swap(i, i*2);
i=i*2;
}
else{
swap(i, i*2+1);
i=i*2+1;
}
l=((lchild(i)?.count)??(intMaxValue));
r=((rchild(i)?.count)??(intMaxValue));
}
}