关注
我也觉得有问题, 不过我的答案跟楼主也不同。。。附上我的答案:
好像牛客网目前有点小问题, 图片传不上来
我用数组的方式表示: 从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
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 聊聊这家公司值得去吗 #
228199次浏览 2151人参与
# 秋招最大的收获是什么? #
33730次浏览 295人参与
# 你认为哪个岗位找工作最卷 #
7649次浏览 28人参与
# 职场上哪些事情令人讨厌 #
16407次浏览 79人参与
# 一人一个landing小技巧 #
77744次浏览 1111人参与
# 职场人,说说你的烦心事 #
8143次浏览 62人参与
# kpi面有什么特征 #
28858次浏览 160人参与
# 为了找工作你投递了多少公司? #
7617次浏览 100人参与
# 大家每天通勤多久? #
41797次浏览 328人参与
# tplink提前批进度交流 #
162478次浏览 1375人参与
# 找工作前vs找工作后的心路变化 #
9508次浏览 101人参与
# 聊聊你的职场新体验 #
157177次浏览 1367人参与
# 经纬恒润求职进展汇总 #
118822次浏览 1027人参与
# 通信硬件牛牛的实习日记 #
7037次浏览 65人参与
# 硬件人你反向读研了吗 #
41696次浏览 629人参与
# 入职第一天,你准备什么时候下班 #
55239次浏览 351人参与
# 好未来求职进展汇总 #
17985次浏览 153人参与
# 担心入职之后被发现很菜怎么办 #
126148次浏览 752人参与
# 晒一晒你收到的礼盒 #
67752次浏览 398人参与
# 一觉醒来,秋招难度下降一万倍…… #
77094次浏览 632人参与