该算法和上篇的优先队列很相近,但不完全相同……
算法思想其实并不难,关键是要仔细……比如,此算法和优先队列的一个区别是:优先队列的数组中0号单元没有使用而这里的0号有使用,故,在初始化下滤的时候,是从0开始的,其第一个还在应该是2*i+1,如果写作了2*i,则编译没问题但计算不出来,死循环……0号单元的第一个孩子是1号单元……
该算法和上篇的优先队列很相近,但不完全相同……
算法思想其实并不难,关键是要仔细……比如,此算法和优先队列的一个区别是:优先队列的数组中0号单元没有使用而这里的0号有使用,故,在初始化下滤的时候,是从0开始的,其第一个还在应该是2*i+1,如果写作了2*i,则编译没问题但计算不出来,死循环……0号单元的第一个孩子是1号单元……