冒泡排序
1.第1个和第2个关键字比较,若第1个大那么这两个数交换。
2.第2个和第3个关键字比较,若第3个大那么这两个数交换。
3.第3个和第4个关键字比较,若第4个大那么这两个数交换。
……
n个数据的数组,最多走n-1趟
举个栗子: 我进行一个6个数据数组的冒泡排序
void Bubblesort(int R[],int n)
{
int i,j,temp,flag;
for(i=n-1;i>=1;--i)
{
flag=0;//flag来标记本趟排序是否发生交换
for(j=1;j<=i;++j)
{
if(R[j-1]>R[j])
{
temp=R[j];
R[j]=R[j-1];
R[j-1]=temp;
flag=1;
}
}
if(flag==0)//没有关键字的交换则有序结束,跳出循环
{
return;
}
}
}
主函数
int main()
{
int n=6;
int R[6];
printf("输入6个数进行冒泡排序:\n");
for(int i=0;i<=5;++i)
{
scanf("%d",&R[i]);
}
Bubblesort(R,n);
printf("输出冒泡排序后的顺序:\n");
for(i=0;i<=5;++i)
{
printf("%d ",R[i]);
}
return 1;
}
运行结果
ok,没问题很简单!