7 5 8 4 2 3 6 1将这串数据调整为小顶堆
时间: 2024-01-03 17:03:35 浏览: 42
将这串数据调整为小顶堆的过程如下:
1. 从最后一个非叶子节点开始,依次向上调整。
最后一个非叶子节点的索引是 (n/2)-1 = 3,所以从节点 3 开始向上调整。
调整前:
```
7
/ \
5 8
/ \ / \
4 2 3 6
/
1
```
调整后:
```
7
/ \
4 8
/ \ / \
1 2 3 6
/
5
```
2. 继续向上调整,直到根节点。
调整前:
```
7
/ \
4 8
/ \ / \
1 2 3 6
/
5
```
调整后:
```
1
/ \
2 3
/ \ / \
5 4 7 6
/
8
```
最后得到的小顶堆为:1 2 3 5 4 7 6 8。
相关问题
对最小堆(小顶堆) {1,3,2,6,7,5,4,15,14,12,9,10,11,13,8}进行三次删除最小元的操作后,结果序列为
删除最小元的操作会使得堆顶元素被删除,并且堆会重新调整,使得剩余的元素仍然构成一个小顶堆。根据堆的性质,每次删除的最小元素都是堆顶元素。
第一次删除最小元素后,堆顶元素为2,调整后堆变为{2,3,4,6,7,5,13,15,14,12,9,10,11,8}。
第二次删除最小元素后,堆顶元素为3,调整后堆变为{3,6,4,8,7,5,13,15,14,12,9,10,11}。
第三次删除最小元素后,堆顶元素为4,调整后堆变为{4,6,5,8,7,11,13,15,14,12,9,10}。
因此,三次删除最小元素的操作后,结果序列为{1,2,3,4}。
将数字 {10, 12, 1, 14, 6, 5, 8, 15, 3, 9, 7, 4, 11, 13, 2} 逐一插入一个初始为空的最小堆(小顶堆),得到的堆序列为:
### 回答1:
使用堆排序算法对数字 {10, 12, 1, 14, 6, 5, 8, 15, 3, 9, 7, 4, 11, 13, 2} 逆一插入一个初值为空的最小堆(小顶堆),得到的堆序列为:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
### 回答2:
要将给定的数字逐一插入一个初始为空的最小堆,得到的堆序列如下:
插入数字10,此时堆为空,将10插入堆中。
插入数字12,与堆顶元素10比较,12大于10,将12插入到第二个位置。
插入数字1,与堆顶元素10比较,1小于10,将10移动到第三个位置,再将1插入堆中。
插入数字14,与堆顶元素1比较,14大于1,将14插入到第四个位置。
插入数字6,与堆顶元素1比较,6大于1,将6插入到第五个位置。
插入数字5,与堆顶元素1比较,5小于1,将1移动到第六个位置,再将5插入堆中。
插入数字8,与堆顶元素1比较,8大于1,将8插入到第七个位置。
插入数字15,与堆顶元素1比较,15大于1,将15插入到第八个位置。
插入数字3,与堆顶元素1比较,3小于1,将3移动到第九个位置,再将3插入堆中。
插入数字9,与堆顶元素1比较,9大于1,将9插入到第十个位置。
插入数字7,与堆顶元素1比较,7大于1,将7插入到第十一个位置。
插入数字4,与堆顶元素1比较,4小于1,将1移动到第十二个位置,再将4插入堆中。
插入数字11,与堆顶元素1比较,11大于1,将11插入到第十三个位置。
插入数字13,与堆顶元素1比较,13大于1,将13插入到第十四个位置。
插入数字2,与堆顶元素1比较,2小于1,将1移动到第十五个位置,再将2插入堆中。
最终得到的小顶堆序列为:1, 3, 2, 5, 4, 6, 8, 15, 9, 7, 10, 12, 11, 13, 14。
### 回答3:
将数字 {10, 12, 1, 14, 6, 5, 8, 15, 3, 9, 7, 4, 11, 13, 2} 逐一插入一个初始为空的最小堆,得到的堆序列为:
1、首先将数字10插入堆中,堆中只有一个节点10,所以得到的堆序列为:10;
2、接下来将数字12插入堆中,由于12比堆的根节点10大,则将12与10交换位置,得到的堆序列为:12, 10;
3、然后将数字1插入堆中,1比父节点12小,所以将1与12交换位置,得到的堆序列为:1, 10, 12;
4、继续将数字14插入堆中,14比父节点10大,所以放在父节点12的右子节点位置,得到的堆序列为:1, 10, 12, 14;
5、将数字6插入堆中,6比父节点1大,所以放在父节点1的右子节点位置,得到的堆序列为:1, 6, 12, 14, 10;
6、将数字5插入堆中,5比父节点1大,所以放在父节点1的左子节点位置,得到的堆序列为:1, 5, 12, 14, 10, 6;
7、将数字8插入堆中,8比父节点1大,所以放在父节点1的左子节点位置,得到的堆序列为:1, 5, 8, 14, 10, 6, 12;
8、将数字15插入堆中,15比父节点1大,所以放在父节点1的左子节点位置,得到的堆序列为:1, 5, 8, 14, 10, 6, 12, 15;
9、将数字3插入堆中,3比父节点1大,所以放在父节点1的左子节点位置,得到的堆序列为:1, 3, 8, 5, 10, 6, 12, 15, 14;
10、将数字9插入堆中,9比父节点1大,所以放在父节点1的右子节点位置,得到的堆序列为:1, 3, 8, 5, 9, 6, 12, 15, 14, 10;
11、将数字7插入堆中,7比父节点1大,所以放在父节点1的右子节点位置,得到的堆序列为:1, 3, 7, 5, 9, 6, 12, 15, 14, 10, 8;
12、将数字4插入堆中,4比父节点1大,所以放在父节点1的左子节点位置,得到的堆序列为:1, 3, 7, 4, 9, 6, 12, 15, 14, 10, 8, 5;
13、将数字11插入堆中,11比父节点1大,所以放在父节点1的右子节点位置,得到的堆序列为:1, 3, 7, 4, 9, 6, 12, 15, 14, 10, 8, 5, 11;
14、将数字13插入堆中,13比父节点1大,所以放在父节点1的右子节点位置,得到的堆序列为:1, 3, 7, 4, 9, 6, 12, 15, 14, 10, 8, 5, 11, 13;
15、最后将数字2插入堆中,2比父节点1大,所以放在父节点1的左子节点位置,得到的堆序列为:1, 2, 7, 4, 3, 6, 12, 15, 14, 10, 8, 5, 11, 13, 9。
因此,将数字 {10, 12, 1, 14, 6, 5, 8, 15, 3, 9, 7, 4, 11, 13, 2} 逐一插入一个初始为空的最小堆,得到的堆序列为:1, 2, 7, 4, 3, 6, 12, 15, 14, 10, 8, 5, 11, 13, 9。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)