题目:将一个乱序的整形数组,从小到大排列,然后输出。
代码:
#include <stdio.h>
#include <stdlib.h>
void bubble_sort(int arr[],int sz)//此处传的要是arr[]数组,而不是arr
{
int i=0;
for(i=0;i<sz;i++)
{
int flag=1;
int j=0;
for(j=0;j<=sz-1;j++)
{
if(arr[j]>arr[j+1])
{
int zcr=arr[j];
arr[j]=arr[j+1];
arr[j+1]=zcr;
flag=0;//本趟的数据不完全有序
}
}
if(flag==1)
{
break;//如果这趟都有序,则直接跳出循环,此处的break跳出的是i的循环
}
}
}
int main()
{
int arr[]={1,2,0,3,5,8,4,7};
int i;
int sz;
sz=sizeof(arr)/sizeof(arr[0]);//sz要在传过去之前求出,不可再传过去之后在求
bubble_sort(arr,sz);
for(i=0;i<=sz-1;i++)
{
printf("%d ",arr[i]);
}
return 0;
}
结果: