有一组数据(15,9,7,8,20,-1,7,4),用堆排序的筛选方法建立的初始堆为()。
时间: 2024-05-17 18:14:35 浏览: 119
我回答了您相同的问题,请注意查看。这里再次回答一遍:
建立初始堆的方法有两种,一种是自下而上的方法,一种是自上而下的方法。这里我介绍自下而上的方法。
首先将数据依次插入空堆中,插入时采用向上筛选的方法,即将新插入的元素与其父节点比较,如果比父节点小,则将其与父节点交换位置,直到不再比父节点小为止。
依次插入数据后,初始堆为:(-1,4,7,8,20,9,7,15)
其中,根节点为-1,左子节点为4,右子节点为7,4的左子节点为8,右子节点为20,7的左子节点为9,右子节点为15。
注意,虽然初始堆的构建方法有多种,但最终的结果应该是一样的。
相关问题
有一组数据(15,9,7,8,20,-1,7,4),用堆排序的筛选方法建立的初始堆为 ( ) A.-1,4,8,9,20,7,15,7 B.-1,7,15,7,4,8,20,9 C.-1,4,7,8,20,15,7,9 D.A,B,C均不对。
根据引用[1]中提到的堆排序的筛选方法,我们可以按照以下步骤建立初始堆:
1. 将给定的数据依次插入堆中,每次插入后都进行向上调整操作,保持堆的性质。
2. 最终得到的堆就是初始堆。
根据这个方法,我们可以按照以下步骤建立初始堆:
1. 将给定的数据依次插入堆中,每次插入后都进行向上调整操作,保持堆的性质。
2. 最终得到的堆就是初始堆。
对于给定的数据(15,9,7,8,20,-1,7,4),按照上述方法建立初始堆的结果为:-1,4,7,8,20,15,7,9。
所以,答案是C.-1,4,7,8,20,15,7,9。
对15,9,7,8,20,-1,4这个数组进行一轮希尔排序并展示过程
希尔排序是一种插入排序的改进版本,它通过比较相距一定间隔的元素来工作。一般来说,希尔排序的步骤如下:
1.选择一个增量序列,例如n/2、n/4、……、1(n为待排序数列长度)。
2.按增量序列个数k,对序列进行k趟排序。
3.每趟排序,根据对应的增量,将待排序列分割成若干长度为m的子序列,分别对各个子序列进行直接插入排序。
4.仅增量因子为1时,整个序列作为一个表来处理,表长度即为整个序列的长度,这时候的排序就是最终的排序结果。
下面是对15,9,7,8,20,-1,4这个数组进行一轮希尔排序的过程:
1.取增量因子为3,将数组分为3个子序列,分别为{15,8},{9,20},{7,-1,4}。
2.对每个子序列进行插入排序,得到{8,15},{9,20},{-1,4,7}。
3.将子序列合并为一个序列,得到{8,9,-1,15,4,7,20}。
这就是一轮希尔排序的过程。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)