把算法导论第六章的堆排序用C#实现了一下。 把MaxHeapify用迭代实现了。发现几个问题:第一呢,算法导论中假设内部数组是从1开始的,结果左右结点的算法和从0开始的数组实际上是不同的。第二呢,在改迭代的时候,粗心把循环变量写错了。结果调了很久,郁闷死。
并且加入优先级队列的功能,包括Maximum, ExtractMax, IncreaseKey, Insert, Delete子过程下面是实现的代码:
namespace FengChen.Practices...{ public class Chapter6 ...{ public class MaxHeap ...{ private Int32[] m_Array; ......
阅读全文