关注
我也觉得有问题, 不过我的答案跟楼主也不同。。。附上我的答案:
好像牛客网目前有点小问题, 图片传不上来
我用数组的方式表示: 从A.length/2 = 8/2 = 4 也就是 数字1开始调整
45301726 -> 45301726 -> 45361720 -> 45761320 ->
46751320 -> 76451320
附上代码:
public int[] heapSort(int[] A, int n) {
for(int i=(n-1)/2;i>=0;--i){ //将数组初始化为堆
heapAdSort(A,i,n);
}
print(A);
//只要初始化部分,后面代码注释掉
/* for(int i=n-1;i>0;--i){
int temp = A[i];
A[i] = A[0];
A[0] = temp;
heapAdSort(A,0,i);
}
*/
return A;
}
public void heapAdSort(int[] A,int i,int
n){//A为数组,i为结点值,n为数组长度
int child = 2 * i + 1; //左孩子
int temp = A[i];//保存节点值
while(child < n){
if(child+1 < n && A[child] <
A[child+1]){// 把child节点指向左右孩子中较大的一个
child ++ ;
}
if(A[i] < A[child]){//如果节点小于孩子值,则交换,节点向下
A[i]=A[child];
i = child;
child = 2*i+1;
}else{
break;
}
A[i] = temp;//将节点保存;
}
}
public void print(int[] A){
for(int i:A){
System.out.print(i+" ");
}
System.out.println();
}
查看原帖
点赞 3
相关推荐
二本牛马:大佬又让我看见了希望
点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
238213次浏览 1944人参与
# 学历or实习经历,哪个更重要 #
40248次浏览 293人参与
# 北方华创开奖 #
22185次浏览 253人参与
# 地方国企笔面经互助 #
2407次浏览 6人参与
# 你最想要的公司福利是? #
38599次浏览 95人参与
# 选完offer后,你后悔学本专业吗 #
8948次浏览 62人参与
# 应届生被毁约被毁意向了怎么办 #
26126次浏览 236人参与
# 机械应届生薪资要多少才合适? #
12229次浏览 59人参与
# 查收我的offer竞争力报告 #
15618次浏览 214人参与
# 一觉醒来,我觉醒了超级打工人系统 #
2657次浏览 32人参与
# 没有实习经历,还有机会进大厂吗 #
804246次浏览 13800人参与
# 你觉得第一学历对求职有影响吗? #
14762次浏览 121人参与
# 我的工作日记 #
20936次浏览 270人参与
# 不给转正的实习,你还去吗 #
1515304次浏览 16960人参与
# 寒假躺平还是提前实习 #
57825次浏览 424人参与
# 秋招OC许愿 #
225623次浏览 1862人参与
# 秋招被确诊为…… #
52775次浏览 295人参与
# 如何一边实习一边秋招 #
983753次浏览 12570人参与
# 总结:哪家公司面试体验感最差 #
25110次浏览 122人参与
# 公司情报交流地 #
31452次浏览 224人参与
# 面试题刺客退退退 #
136323次浏览 2083人参与