java数组升序方法开源代码_java 各类排序数组实现

packagesort;/*堆排序:堆排序的关键是构造堆结构,即是构造一个完全二叉树。每个节点应满足条件:若升序,则父节点大于或等于左右子节点

* 的数据,若降序则反之。在这里选择升序,则根节点为最大值。堆排序需要反复两个步骤:构造堆结构和堆排序输出。

*“筛”运算来调整节点数据,以满足堆结构条件。

*“筛”运算:从最底层的父节点开始,比较其左右子节点,选取较大的值与父节点比较,若大于父节点,则该子节点与父节点交换。其他

*节点也是如此, 知道所有父节点均大于子节点的值。

*排序输出:构造堆结构完成后,取最底层的节点,替换出根节点(最大值),将根节点保存至数组的最后位置。再进行构造堆结构,

*排序输出。如此反复,知道最后两个数据比较完毕。排序也完成了。

**/

public classHeapSort {static final int SIZE = 10;static void heapSort(int a[],intn){inti,j,h,k;intt;for(i=n/2-1;i>=0;i--){while(2*i+1

j=2*i+1;if((j+1)

j++;

}if(a[i]

t=a[i];

a[i]=a[j];

a[j]=t;

i=j;

}else{break;

}

}

}

System.out.print("原数据构成的堆:");for(h=0;h

System.out.print(" " +a[h]);

}

System.out.print("\n");for(i=n-1;i>0;i--){

t= a[0];

a[0] =a[i];

a[i]=t;

k= 0;while(2*k+1

j=2*k+1;if((j+1)

j++;

}

}if(a[k]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值