冒泡排序
编写一个冒泡排序函数,参数为要排序的数组和数组元素个数。
#include <stdio.h>
#define NUM(arr) sizeof(arr)/sizeof(arr[0]) //获取要排序的数据量
void maopao(int *a,int num)
{
int temp,i,j,k;
for(i=0;i<num-1;i++) //表示共进行几轮比较,num-1表示num个数,两两比较,比较num-1次轮即可。
{
for(j=0;j<num-i-1;j++) //表示一轮比较要进行几次比较
{
if(a[j]>a[j+1]) //如果后值较大,交换数值
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for(k=0;k<num;k++)
{
printf("%d ",a[k]);
}
printf("\r\n");
}
int main(void)
{
int aa[] = {2313,234,123,0,12,43,5,61};
maopao(aa,NUM(aa));
}