|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- public class P4_6 {
- static final int SIZE=10;
- public static void main(String[] args) {
- int[] shuzu=new int[SIZE];
- for(int i=0;i<SIZE;i++){
- shuzu[i]=(int)(100+Math.random()*(100+1));//初始化数组
- }
- System.out.println("排序前的数组为");
- for (int i : shuzu) { //输出未排序之前的数组
- System.out.print(i+" ");
- }
- System.out.println();
- heapsort(shuzu, SIZE); //调用方法
- System.out.println("排序之后的数组为:");
- for(int i=0;i<SIZE;i++){
- System.out.print(" "+shuzu[i]);
- }
- }
- static void heapsort(int[] a,int n){
- int i,h,temp;
- int j=0;
- System.out.println("原数据构成的堆:");
- for(h=0;h<n;h++){
- System.out.print(a[h]+" ");
- }
- System.out.println();
- for(i=n-1;i>0;i--){
- duipai(a,i+1);
- temp=a[0];
- a[0]=a[i];
- a[i]=temp;
- System.out.print("第"+(++j)+"排序之后,数组为:");
- for(h=0;h<n;h++){
- System.out.print(" "+a[h]);
- }
- System.out.println();
- }
- }
-
- static void duipai(int[] a,int n){
- int i,j;
- int temp;
- for(i=n/2-1;i>=0;i--){
- while(2*i+1<n){
- j=2*i+1;
- if(j+1<n){
- if(a[j]<a[j+1]){
- j++;
- }
- }
- if(a[i]<a[j]){
- temp=a[i];
- a[i]=a[j];
- a[j]=temp;
- i=j;
- }else{
- break;
- }
- }
- }
- }
- }
复制代码
|
评分
-
查看全部评分
|