数据结构题目大家看看怎么做
阅读下列函数algo,并回答问题。(1)假设整形数组A[1...8]中的元素依次为(3,8,9,1,7,4,2,6).执行函数调用algo(A,8)时,外层while的循环体执行多少次?函数的返回值是多少?
(2)简述函数algo(L,n)的功能.
int algo(int L[],int n)
{
int i=0,j,s=1,t=n;
while(i!=(n+1)/2)
{
int x=L[s];
i=s;j=t;
while(i<j)
{
while(i<j&&L[j]>=x)j--;
L[i]=L[j];
while(i<j&&L[i]<=x)i++;
L[j]=L[i];
}
L[i]=x;
if(i<(n+1)/2)s=i+1;
else t=i-1;
}
if(i==0)return 0;
else return L[i];
}