c语言之冒泡程序,简单算法,语句有备注,互相学习。
思考程序效率问题
#include <stdio.h>
void Bubble(int arr[],int sz) //冒泡排序函数,传参,arr地址,元素个数
{
int i=0;
int j=0;
int num=0;
for(i=0;i<sz-1;i++)
{
int flag=1; //排序标志位, 若不存在乱序,则一轮后跳出
for(j=0;j<sz-i-1;j++)
{
if(arr[j]>arr[j+1]) //相邻两个数比较并交换
{
num=arr[j+1]; //交换
arr[j+1]=arr[j];
arr[j]=num;
flag=0; //标志位置零,定义乱序,继续循环
}
}
if(flag==1) //标志位==1,跳出循环
{
break;
}
}
}
int main()
{
int i=0;
int arr[]={9,8,7,6,5,4,3,2,1,0}; //创建无序数组
int sz=sizeof(arr)/sizeof arr[0]; //计算元素个数
Bubble(arr,sz);
for(i=0;i<sz;i++)
{
printf("%d\t",arr[i]); //有序打印数组
}
return 0;
}