是两两相邻的元素进行比较,然后将较大的(或较小的)放到后面,慢慢的将大的元素依次后放
第一步是将最大的元素(或最小的元素)放到最后
第二步在剩下的元素中继续完成这个操作
#include <stdio.h>
int main(){
int n,stemp;
printf("请输入冒泡排序的元素个数:\n");
scanf("%d",&n);
int a[n];
for(int i=1;i<=n;i++){
printf("请输入第%d个数的值为:\n",i);
scanf("%d",&a[i-1]);
}
printf("您输入的%d个数字依次为:\n",n);
for (int i=1; i<=n; i++) {
printf("%d\t",a[i-1]);
}
for (int i=0; i<n-1; i++) {
for (int j=i+1; j<n; j++) {
if(a[j]>a[i]){
stemp=a[i];
a[i]=a[j];
a[j]=stemp;
}
}
}
printf("\n\n冒泡排序的结果为【大--->小】:\n");
for (int i=1; i<=n; i++) {
printf("%d\t",a[i-1]);
}
printf("\n\n冒泡排序的结果为【小--->大】:\n");
for (int i=n; i>=1; i--) {
printf("%d\t",a[i-1]);
}
return 0;
} |
|