编辑代码

import java.util.*;

class Main {
	public static void main(String[] args) {
        //JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。
        int[] nums = {2, 9, 7, 6, 5, 8};
        Heap heap = new Heap(nums);
        for (Integer i: heap.getHeap()){
            System.out.println(i);
        }
		System.out.println("Hello world!   - java.jsrun.net ");
	}
}
class Heap{
    
    List<Integer> heap;
    int size;

    public Heap(int[] nums){
        nums = newNums(nums);
        for(int i = 1; i <= nums.length / 2; i++){
            int left = i * 2;
            int right = left + 1;
            int maxIndex = -1;
            if (right < nums.length){
                maxIndex = nums[left] > nums[right]? left:right;
            }else{
                maxIndex = left;    
            }
            if(nums[maxIndex] > nums[i]){
                int temp = nums[maxIndex];
                nums[maxIndex] = nums[i];
                nums[i] = temp;
            }
        }
        this.size = nums.length - 1;
        this.heap = new ArrayList<>();
        for (int i = 1; i < nums.length; i++){
            this.heap.add(nums[i]);
        }
    }

    public int[] newNums(int[] nums){
        int[] newNums = new int[nums.length + 1];
        for (int i = 0; i < nums.length; i++){
            newNums[i + 1] = nums[i];
        }
        return newNums;
    }

    public int[] getHeap(){
        int[] nums = new int[size];
        for(int i = 0; i < size; i++){
            nums[i] = heap.get(i);
        }
        return nums;
    }
}