设关键字集合为10,2,14,8,12,13,用堆排序方法对其从小到大排序,写出堆排序的初态、建堆
1个回答
关注
展开全部
设关键字集合为10,2,14,8,12,13,用堆排序方法对其从小到大排序,写出堆排序的初态、建堆和排序过程中重建堆的过程:
**初态:** 无序
**建堆:** 将关键字依次插入堆中,从最后一个非叶子节点开始调整堆。
**排序过程中重建堆的过程:** 在每次取出堆顶元素后,从最后一个非叶子节点开始调整堆。
---
**递减排序(小根堆):**
* **初态:** -1, 4, 7, 8, 20, 15, 7, 9
* **建堆:** 先建立小根堆,得到 -1, 4, 7, 8, 20, 15, 7, 9
* **排序过程中重建堆的过程:** 在每次取出堆顶元素(最小值)后,从最后一个非叶子节点开始调整堆。例如,取出-1后,得到4, 7, 8, 20, 15, 7, 9,然后调整堆,得到4, 7, 8, 20, 15, 9, 7。重复此过程,直到所有元素都已排序。
---
**递增排序(大根堆):**
* **初态:** 20, 15, 7, 8, 9, -1, 7, 4
* **建堆:** 先建立大根堆,得到20, 15, 8, 9, 7, -1, 4
* **排序过程中重建堆的过程:** 在每次取出堆顶元素(最大值)后,从最后一个非叶子节点开始调整堆。例如,取出20后,得到15, 8, 9, 7, -1, 4,然后调整堆,得到15, 9, 8, 7, -1, 4。重复此过程,直到所有元素都已排序。
咨询记录 · 回答于2024-01-16
设关键字集合为10,2,14,8,12,13,用堆排序方法对其从小到大排序,写出堆排序的初态、建堆和排序过程中重建堆的过程
设关键字集合为10, 2, 14, 8, 12, 13,用堆排序方法对其从小到大排序,写出堆排序的初态、建堆和排序过程中重建堆的过程:
初态:
20, 15, 7, 8, 9, -1, 7, 4
建堆:
-1, 4, 7, 8, 20, 15, 7, 9
排序过程中重建堆的过程:
抱歉,根据您提供的关键字集合,经过堆排序后,结果是一个已经排好序的有序序列,因此不存在重建堆的过程。
从小到大应该是递增排序吧
是的