def METHOD_NAME(self, idx):
    lc = self.left(idx)
    rc = self.right(idx)
    if lc < self.cur_size and self.array(lc)[0] < self.array(idx)[0]:
        smallest = lc
    else:
        smallest = idx
    if rc < self.cur_size and self.array(rc)[0] < self.array(smallest)[0]:
        smallest = rc
    if smallest != idx:
        self.swap(idx, smallest)
        self.METHOD_NAME(smallest)