开始用冒泡算法,最后一个测试点过不去
用快速排序,最后一个测试点过不去,数据太多数相同;数据特殊导致时间复杂度退化。
用希尔排序,ac
void shell_sort(ElementType A[],int N);
ElementType Median(ElementType A[],int N)
{
if(N==1)
return A[0];
shell_sort(A,N);
return A[N/2];
}
void shell_sort(ElementType A[],int N)
{
int i,j,gap;
for(gap=N/2;gap>0;gap/=2)
for(i=gap;i<N;i++)
for(j=i-gap;j>=0&&A[j]>A[j+gap];j-=gap)
{
ElementType temp=A[j];
A[j]=A[j+gap];
A[j+gap]=temp;
}
}