从一个乱序数组建堆,怎么做最快
把一个无序数组整理成堆,最快的做法是【0】。
阅读更多 →
连弹两次,第二次弹出谁
同一个 pop。连着弹两次,输出第二次弹出来的值。
阅读更多 →
写弹出
补全 pop:取走堆顶、拿末尾补上、再下沉,返回取走的那个。 补全后输出弹出来的值。
阅读更多 →
写下沉
补全 sift_down:让下标 i 上的元素一路往下沉到该去的位置。 把堆顶换成 17 再沉一次,输出新的堆顶。
阅读更多 →
弹一次之后还剩几个
同一个堆。运行下面这段程序: def sift_down(h, i, n): while True: big = i l = 2 * i + 1
阅读更多 →
弹一次之后新的堆顶是几
堆是 24、23、15、13、17。运行下面这段程序: def sift_down(h, i, n): while True: big = i l = 2 *
阅读更多 →
和较小的那个换会怎样
下沉时如果和较小的孩子交换,后果是【0】。
阅读更多 →
下沉时和哪个孩子换
下沉的时候,要和【0】交换。
阅读更多 →
取走堆顶之后拿什么补上
取走堆顶之后,为了保持形状规整,要【0】。
阅读更多 →
插入 23 的时候上浮了几次
补全 push,让它返回这次上浮换了几次。 前四个数插完之后再插 23,输出这一次换了几次。
阅读更多 →