编辑代码

#include <iostream>
#include <cmath>
using namespace std;

class HeapFromBottom{
    private:
        int *heap;
        int capacity;

    public:
        HeapFromBottom(int a[],int len){
            heap = new int(len+1);
            capacity = len;

            for(int i = 0;i<len;++i){
                heap[i+1]=a[i];

                int childIndex = i+1;

                while(childIndex>1){
                    int parentIndex = floor(childIndex/2);

                    if(heap[parentIndex] < heap[childIndex]){
                        int temp = heap[parentIndex];
                        heap[parentIndex] = heap[childIndex];
                        heap[childIndex]=temp;

                        childIndex = parentIndex;
                    }else{
                        break;
                    }
                }
            }
        }


        void print(){
            for(int i=1;i<capacity+1;++i){
                cout << heap[i] << " ";
            }
            cout << endl;
        }


}


int main() {
    //JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。 
	int a[]={2,9,7,6,5,8};

    HeapFromBottom *heap=new HeapFromBottom(a,sizeof(a)/sizeof(int));
    heap->print();

    delete heap;

	return 0;
}