永发信息网

下图堆排序 我想知道堆排序交换了多少回 n=5 (5个数) 例如 1 2 3 4 5 交换后 1

答案:1  悬赏:50  手机版
解决时间 2021-12-04 03:39
下图堆排序 我想知道堆排序交换了多少回 n=5 (5个数) 例如 1 2 3 4 5 交换后 1
最佳答案
如果只是测试看交换了多少次,设置的全局变量,初始化为0,然后把它放在swap函数里,实现每调用一次swap函数,就自加1,这样就可以记录交换的次数了。追问这样对不对?
交换了11回追答嗯,这是建堆跟排序总的交换次数。追问
开始时
从大到小或是
从小到大
都是11回 感觉不太对追答你要记录排序的交换次数,还是要记录建堆的交换次数。追问堆排序交换的次数
比冒泡排序交换的次数还多 对不对?排序的交换次数请问刚才出现的11是什么的交换次数?追答堆排序平均效率要比冒泡高。那个11是总的交换次数追问从1~5变成1~5为什么交换了11回追答记录排序的交换次数,把count++写在heapsort的for循环中试一试。追问
5? 0?追答你换成逆序再看看结果追问
追答这里好像有点问题,我想一想。追问麻烦您了追答在max_heapify函数的最后一个if里面也写上count++,在build_max_heap函数的for循环中写上count--这里也不好计算,这几个函数有共享区域,算出来结果不一定对。追问

追答这个数字应该也不是准确的。因为每一次循环都是一样的,必须要设置一个识别标志才行,能识别是建堆还是排序。追问对两个应该不可能一样排序最好两个可以分别表示
countp,countd追答你急不,不急的话私信把代码发给我,我晚上回来帮你改改,急得话再等其他人帮你弄一弄,我得出去了。用两个变量也可以,就是要分清什么时候该对它们的值进行改变。追问我不急代码是我写的内容吗?追答嗯,是的那你私信发给我,我晚上帮你弄一弄吧。追问知道了,一会儿发给您追答嗯
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
now是什么意思英语中是什么意思
我家楼上厕所漏水,如何进行起诉
带有黄鹤的诗句
以前国营厂承包给个人与不承包的区别
VI设计中的“标志正负形”是什么意思
钻戒上的00203 g750xp是什么意思
化工生产DCS上,英文字母的含义是什么?
到金山丽园怎么坐公交车,最快需要多久
柴油空压机什么用?
点钞练功专用券有什么用值钱吗?
云商数贸联盟,云商联盟是传销吗?能加入吗?
衡水老窖荷花42℃四瓶装多少钱一箱?
大姜储存姜窖的作法
三星手机包装盒上的GH69-15596A代表什么意思
自行车是中国老百姓最常用的交通工具,几乎家
推荐资讯
黄陂大顶山天气预报
广州130号段是什么
为啥发了4一5天的绿豆芽茎很短而且都长毛毛的
不自信,心慌,精神有点恍惚,提不起精神,不
急求:带‘尤’字的诗、词语、成语,谢谢
请明白人帮忙算一下,烟道10米,90度弯有4个
aaa华约自主招生aaa什么意思
气体的实验室制取是初中非常重要的一组实验,
圆通快递上班时间
3乘以10的5次方千米等于多少厘米,多少毫米
火烧云4、5、6访写句子怎么写?
三分之二和0.67哪个大
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?