一组关键字序列为(50,40,95,20,15,70,60,45,800,采用堆排序方法进行递增排序在建立初始最大值堆后,队中第四个关键字为
时间: 2023-08-19 12:05:46 浏览: 221
建立最大堆的过程如下:
1. 将序列构建成一个完全二叉树。
```
50 40 95 20 15 70 60 45 800
```
2. 从最后一个非叶子结点开始,依次将每个结点与其子树中的最大值进行比较,如果不是最大值,则交换位置,重复此过程直到叶子结点,此时,整个树就成为了一个最大堆。
```
800 50 95 45 15 70 60 20 40
```
在排序过程中,我们需要不断将根节点(最大值)与最后一个叶子结点交换位置,然后重新构建堆。具体过程如下:
1. 将堆顶元素800与最后一个元素交换位置,得到:
```
40 50 95 45 15 70 60 20 800
```
2. 以新的堆顶元素40为根节点,重新构建最大堆:
```
95 50 70 45 15 40 60 20 800
```
3. 将堆顶元素95与最后一个元素交换位置,得到:
```
20 50 70 45 15 40 60 95 800
```
4. 以新的堆顶元素20为根节点,重新构建最大堆:
```
70 50 60 45 15 40 20 95 800
```
5. 将堆顶元素70与最后一个元素交换位置,得到:
```
20 50 60 45 15 40 70 95 800
```
6. 以新的堆顶元素20为根节点,重新构建最大堆:
```
60 50 40 45 15 20 70 95 800
```
7. 将堆顶元素60与最后一个元素交换位置,得到:
```
20 50 40 45 15 60 70 95 800
```
8. 以新的堆顶元素20为根节点,重新构建最大堆:
```
50 45 40 20 15 60 70 95 800
```
9. 将堆顶元素50与最后一个元素交换位置,得到:
```
15 45 40 20 50 60 70 95 800
```
10. 以新的堆顶元素15为根节点,重新构建最大堆:
```
45 20 40 15 50 60 70 95 800
```
11. 将堆顶元素45与最后一个元素交换位置,得到:
```
15 20 40 45 50 60 70 95 800
```
经过以上排序过程,得到的序列为(15,20,40,45,50,60,70,95,800)。因此,队中第四个关键字为45。
阅读全文