堆排序java代码

public class HeapSort {

public static void main(String[] args){
    int[] arr = {49,38,65,97,76,13,27,49};
    for (int i = 0;i < arr.length;i++){
        System.out.print(arr[i] + " ");
    }
    System.out.println();
    headSort(arr);
    for (int i = 0;i < arr.length;i++){
        System.out.print(arr[i] + " ");
    }
}

public static void headSort(int[] arr){
    int i;
    int temp;
    int n = arr.length - 1;
    for (i = n / 2;i >= 0;i--){
        sift(arr, i, n);
    }
    for (i = n;i >= 1;i--){
        temp = arr[0];
        arr[0] = arr[i];
        arr[i] = temp;
        sift(arr, 0, i - 1);
    }
}

public static void sift(int[] arr,int low,int high){
    int i = low,j = 2 * i + 1;
    int temp = arr[i];
    while (j <= high){
        if (j < high && arr[j] < arr[j + 1]){
            j++;
        }
        if (temp < arr[j]){
            arr[i] = arr[j];
            i = j;
            j = 2 * i + 1;
        }else{
            break;
        }
        arr[i] = temp;
    }
}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转自https://blog.csdn.net/sinat_38259539/article/details/71...
    扎Zn了老Fe阅读 515评论 0 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,778评论 18 399
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一...
    阿里高级软件架构师阅读 3,314评论 0 19
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 1,916评论 0 2
  • “你为什么要那么努力?” “因为我喜欢的东西都很贵,我想去的地方都很 远,我爱的人超完美。” 这是我在网上看到的一...
    苏云儿阅读 1,270评论 3 3