冒泡排序
目的
将一个序列按从小到大的顺序排序。
实现
- n个数要进行n-1趟排序。
- 每趟从左到右每两个数进行交换。
- 每趟确定最右(大)的数。
代码
#include <cstdio>
const int MAXN = 50;
int a[MAXN];
int main(){
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(int i=1;i<=n-1;i++){ //n-1趟
for(int j=0;j<n-i;j++){ //第i趟时交换的左边的数a[j],j的取值范围是0到n-i-1
if(a[j]>a[j+1]){ //当左边的值大于右边时,进行交换
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for(int i=0;i<n;i++){
printf("%d",a[i]);
if (i < n - 1) { //每个数之间用空格隔开,末尾不加空格
printf(" ");
}
}
return 0;
}