冒泡排序是排序算法中较为简单的一种,英文称为Bubble Sort。它遍历所有的数据,每次对相邻元素进行两两比较,如果顺序和预先规定的顺序不一致,则进行位置交换;这样一次遍历会将最大或最小的数据上浮到顶端,之后再重复同样的操作,直到所有的数据有序。
第一种:直接全部遍历
int main()
{
int data[10]={1,3,5,7,9,2,4,6,8,0};
int i=0;
int j=0;
int temp=0;
for(i=0;i<10;i++){
for(j=0;j<9-i;j++){
if(data[j]>data[j+1]){
temp=data[j];
data[j]=data[j+1];
data[j+1]=temp;
}
}
}
// 打印排序后的结果
for (i=0;i<10;i++){
printf("%d ",data[i]);
}
return 0;
}
第二种:假若给的数组已经排列好了,我们只要在第一趟循环过程中做个标记,若没有交换则直接跳出,不必去比较下一趟了。
int main()
{
int data[10]={1,3,5,7,9,2,4,6,8,0};
int i=0;
int j=0;
int temp=0;
int flag=0;
for(i=0;i<10;i++){
flag=1;
for(j=0;j<9-i;j++){
if(data[j]>data[j+1]){
flag=0;
temp=data[j];
data[j]=data[j+1];
data[j+1]=temp;
}
if(flag){
break;
}
}
}
// 打印排序后的结果
for (i=0;i<10;i++){
printf("%d ",data[i]);
}
return 0;
}