排序算法问题,为什么该算法效率很低
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),算是最高的了