// -----------冒泡排序------------------------
int a[5]={5,3,2,4,1};
//外层循环有n个数据,循环n-1次
for (int i=0; i<5-1; i++)
{
//当i=0的时候 a[i]= 3
//当前这个数据需要比较的次数(n-i-1)
for (int j=0; j<5-i-1; j++)
{
//如果不满足情况,就需要交换位置
if (a[j]>a[j+1])
{
int temp=0;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
/* if (i==1&&j==1)
{
i=6;//只需要在内层循环的时候改变外层循环的控制变量
break;
} */ // 必须放在上面if语句的后面,如果放在里面(i==1&&j==1)条件成立时,如果(a[j]>a[j+1])不成立,则该if语句永远不会执行。
}
}
for (int i=0; i<5; i++) {
printf("%d\n",a[i]);
}
//当i=3,j=2的时候,不再进行循环
//---------------跳出两层for循环----------------
return 0;
}
|
|