编辑代码

import java.util.ArrayList;
import java.util.List;

class Heap{
    private int size;
    private List<Integer> heap;
    private List<Integer> sorted;

    public Heap(int[] nums) {
        this.size = nums.length;
        int[] newNums = new int[nums.length + 1];
        for (int i = 1; i < newNums.length; i++){
            newNums[i] = nums[i - 1];
        }
        for (int i = 1; i < newNums.length / 2; i++){
            int nowIndex = i;
            while (nowIndex >= 1){
                if (newNums[nowIndex] < newNums[nowIndex * 2] ||
                        newNums[nowIndex] < newNums[nowIndex * 2 + 1]){
                    int largeIndex = newNums[nowIndex * 2] > newNums[nowIndex * 2 + 1]?
                            nowIndex * 2:nowIndex * 2 + 1;
                    int t = newNums[largeIndex];
                    newNums[largeIndex] = newNums[largeIndex / 2];
                    newNums[largeIndex / 2] = t;
                    nowIndex = nowIndex / 2;
                }else {
                    break;
                }
            }
        }
        this.heap = new ArrayList<>();
        for (int i = 1; i < newNums.length; i++){
            this.heap.add(newNums[i]);
        }
    }

    public List<Integer> getHeap() {
        return heap;
    }

    public List<Integer> heapSort(){
        this.sorted = new ArrayList<>();
        List<Integer> sortHeap = this.heap;

        while (sortHeap.size() <= 0){
            Integer root = sortHeap.remove(0);
            this.sorted.add(root);
            
            
        }
    }
}