编写一个双向冒泡排序算法,即在排序过程中以交替的正,反两个方向进行遍历,若第一趟吧关键字最大的记录放到最末尾,则在第二趟吧关键字最小的记录放到最前面。如此反复进行。
void dbubble(int a[],int i,int j,int flag)
{
int y,temp;
if(i==j)
return;
if(flag==1)
{
for(y=i;y<=j-1;y++)
{
if(a[y]>a[y+1])
{
temp=a[y];
a[y]=a[y+1];
a[y+1]=temp;
}
}
flag=0;
j--;
dbubble(a,i,j,flag);
}
else if(flag==0)
{
for(y=j;y>i;y--)
{
if(a[y]<a[y-1])
{
temp=a[y];
a[y]=a[y-1];
a[y-1]=temp;
}
}
flag=1;
i++;
dbubble(a,i,j,flag);
}
}