用二叉堆做了一个排序,但运行有点问题,求指点
#include<bits/stdc++.h>
#define N 100010
using namespace std;
int heap[N];
int len=0;
void put(int x){
len++;
int p=len;
heap[len]=x;
while(p!=1 && heap[p/2]>heap[p]){
swap(heap[p/2],heap[p]);
p=p/2;
}
}
int main(){
int n;
cin>>n;
int t;
for(int i=1;i<=n;i++){
cin>>t;
put(t);
}
for(int i=1;i<=n;i++) cout<<heap[i]<<" ";
return 0;
}