#include <stdio.h>
void TwoBubbleSort(int *Array ,int n);
void TwoBubbleSort(int *Array ,int n)
{
int topmin=0;
int bottommax=n;
int mmin=0,mmax=0;
int i=0;
int a=0;
while(topmin<bottommax)
{
mmin=0;
mmax=0;
for(i=topmin;i<bottommax;i++)
{
if(*(Array+i)>*(Array+i+1))
{
a=*(Array+i);
*(Array+i)=*(Array+i+1);
*(Array+i+1)=a;
mmax=i;
}
}
if(mmax==0)
break;
bottommax=mmax;
for(i=bottommax-1;i>topmin;i--)
{
if(*(Array+i)<*(Array-1+i))
{
a=*(Array+i);
*(Array+i)=*(Array+i-1);
*(Array+i-1)=a;
mmin=i;
}
}
if(mmin==0)
break;
topmin=mmin;
}
}
int main(void)
{
int array[8]={1,2,3,9,8,7,54,1};
int i=0;
printf("待排数组为:\n");
for(i=0;i<8;i++)
printf("%d ",*(array+i));
printf("\n冒泡排序后的数组:\n");
TwoBubbleSort(array,8);
for(i=0;i<8;i++)
printf("%d ",*(array+i));
return 0;
}
冒泡排序改进算法(双向起泡)
最新推荐文章于 2022-11-08 15:09:36 发布