堆排序例题讲解 计算机二级的中的“堆排序法”是怎么排的?
浏览量:2769
时间:2021-03-16 20:14:41
作者:admin
计算机二级的中的“堆排序法”是怎么排的?
堆排序方法是通过堆数据结构进行排序。算法的复杂度为O(nlogn)。堆是一个完整的二叉树,所有的父节点都比它的子节点大(或小)。堆排序是将所有要排序的元素放入一个堆中,然后弹出堆中最上面的元素并调用函数来保持堆的顺序,直到所有元素都弹出为止。元素的弹出序列是有序序列。保持堆顺序的一般方法如下:插入节点时,将其放置在堆的末尾(这是为了确保堆是一个完整的二叉树),然后将该节点与其父节点进行比较,以查看该节点是否大于(或小于)其父节点,即,判断当前堆是否符合堆顺序。否则,节点将与其父节点交换。然后将该节点与其新的父节点进行比较,依此类推,直到该节点不再需要与其父节点交换。当一个根节点被弹出(即从堆中删除)时,堆的尾部节点被移动到头部节点,然后该节点被连续地与其子节点进行比较。如果它不符合堆顺序,则交换它,直到它符合堆顺序为止。下面是我写的一个C堆排序程序,希望对您理解算法有帮助。#包括
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。