
 从小到大排序: 构造小顶堆
 从大到小排序: 构造大顶堆
【注意:只比较和交换相邻的元素】
案例:
 对以下数据进行堆排序:【从大到小排序】
答:
 把原数据看成一个二叉树:

 自底向上一层一层扫描,将节点与左右节点进行比较大小,把大的往上交换第一步:01与17比较:并交换

 第二步:97、与 08、 09比较:不需要交换

第三步:19 与 97 、17 进行比较:
 19 < 97所以两个互换

 第四部:取数据:取出97,然后把最末尾的移动到根节点位置(即最顶部),然后再次重复第一 ~三步再次构造一个大顶堆。
 此时:

 再次取出堆顶元素,把末尾元素放到堆顶上面去,然后再次构造大顶堆:

 再次取出堆顶元素,把末尾元素放到堆顶上面去,然后再次构造大顶堆:

 再次取出堆顶元素,把末尾元素放到堆顶上面去,然后再次构造大顶堆:

 再次取出堆顶元素,然后二叉树中只剩下一个元素,直接加入到末尾上:

 堆排序结束!总结:

                
 
 
                     
            
        













 
                    

 
                 
                    