排序算法问题,为什么该算法效率很低

排序算法问题,为什么该算法效率很低

void swap(int array[],int p1,int p2)
{
    int tem=array[p1];
    array[p1]=array[p2];
    array[p2]=tem;
}
void buidheap(int array[],int n)
{
    for(int i=n/2-1; i>=0; i--)
    {
        int j1=i*2+1;
        int j2=i*2+2;
        if(j1<n&&j2<n)
        {
            if(array[i]<array[j1]) swap(array,i,j1);
            if(array[i]<array[j2]) swap(array,i,j2);
        }
    }
}
void sort(int array[],int n)
{
    for(int i=0; i<n; i++)
    {
        buidheap(array,n-i);
        swap(array,0,n-1-i);
    }
}

两个for 循环,时间复杂度比较高

时间复杂度是O(N^2),算是最高的了