小弟没读多少书,还请各位大侠帮忙指点一个算法
最近看到一个java类Timer里面,有这样一个算法。即Timer::TimerImpl::TimerHeap类的downHeap和upHeap两个函数,我在演草纸上画了很久,最终只模模糊糊明白大概意思:将完全二叉树从顶点到叶节点,从上到下,从左到右,依次标记所在位置为0-N ,一一对应于数组的第0-N元素。每次upHeap能找出数组中(或二叉树中)具有最小值的元素,放在数组的起始位置(二叉树的根),downHeap(pos)找出pos为根的子树的最小值。代码很少却很深奥,好像确实很保证最小的元素在根的位置,请问这个算法叫什么名字,出自哪里教材或者书中?怎样才能理解它呢
[解决办法]
堆排序
[解决办法]
最小根堆排序