编辑代码

void main() {
  print('Hello world!     - dart.jsrun.net');
  List<int> nums = [9, 2, 8, 5, 20, 5, 8];
  List<int> arr = [62, 88, 58, 47, 35, 73, 51, 99, 37, 93];
  buildHeap(arr);
  print('$arr');
}

buildHeap(List<int> datas) {
    int l = datas.length;
    for(int i = (l / 2).floor(); i>=0; i--) {
        sortHeap(datas, i, l);
    }
    return sortHeap;
}

sortHeap(List<int> datas, int i, int len) {
    int child = 2*i + 1;// 左子树
    while(child < len) {
        int temp = datas[i];
        if(child+1 < len && datas[child] < datas[child + 1]) {
            child += 1;
        }
        if(datas[i] < datas[child]) {
            datas[i] = datas[child];
            datas[child] = temp;
            i = child;
            child = 2*i + 1;
        } else {
            break;
        }
    }
}