堆排序怎么排

  1、当一个节点被插入时,将该节点放在堆的末尾(这是为了保证堆是完全二叉树);

  

  2、然后将该节点与它的父节点比较,看该节点是否大于(或小于)其父节点,即判断当前的堆是否满足堆序;

  

  3、如果不满足,则将该节点与其父节点交换。再将该节点与其新的父节点做比较,依此类推,直到该节点不再需要与其父节点交换为止;

  

  4、(即满足堆序时停止)当一个根节点被弹出(即被从堆中删除)时,将堆最尾部的节点移动到头结点的位置,然后将该节点不断与其子节点比较,如果不符合堆序则交换,直到符合堆序为止。

  

你可能感兴趣的