这题用快速排序,用其他的速度太慢,对照看看快速排序的动画
排好序后return A[N/2]就是答案
ElementType Median(ElementType A[], int N)
{
//gap是每次排序分组的间隔,每次间隔缩小两倍
for(int gap = N/2;gap>=1;gap/=2)
{
for(int i = gap;i<N;i++)
{
for(int j = i-gap;j>=0 && A[j]>A[j+gap];j-=gap)
{
ElementType temp;
temp = A[j];
A[j] = A[j + gap];
A[j + gap] = temp;
}
}
}
return A[N /2];
}