#include <stdio.h>
void BubbleSort(int *Array ,int n);
void BubbleSort(int *Array ,int n)
{
int flag=0,i=0;//Array[flag]之后没有发生交换
int a=0,m=0;
flag=n-1;
while(flag!=0)
{
m=0; //此行必不可少
for(i=0;i<flag;i++)
{
if(*(Array+i)>*(Array+i+1))
{
a=*(Array+i);
*(Array+i)=*(Array+1+i);
*(Array+1+i)=a;
m=i;
}
}
flag=m;
}
}
int main(void)
{
int array[8]={4,2,2,2,3,4,5,6};
int i=0;
printf("待排数组为:\n");
for(i=0;i<8;i++)
printf("%d ",*(array+i));
printf("\n冒泡排序后的数组:\n");
BubbleSort(array,8);
for(i=0;i<8;i++)
printf("%d ",*(array+i));
return 0;
}
改进后的冒泡排序(单向起泡)
最新推荐文章于 2024-11-28 13:35:01 发布