首页 养生问答 疾病百科 养生资讯 女性养生 男性养生

C++堆排序建堆问题

发布网友 发布时间:2022-04-24 17:02

我来回答

1个回答

热心网友 时间:2023-10-24 11:44

在你的HeapSort应该加一段初始化为最小堆的代码,然后再进入那个for循环。BuildHeap建堆的过程是至上而下的,也就是说j的值变成 2*j或 2*j+1,而不是j/=2.
如果按你这样的方法构建会出现这样的交换过程:
1.8 2 3 1
2.8 1 3 2
3.1 8 3 2
显然不是最小堆,正确的应该是1 2 3 8

你可以看一下这个:http://blog.csdn.net/ouyangying123/article/details/51334165

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com