编程重点部分专接本考试常见的排序算法之一 冒泡排序算法
程序填空题 程序编程题都可能遇到
相邻的两个数互相交换
t=a[j]; a[j]=a[j+1] a[j+1]=t
注意循环部分
数组个数为n个
n个数循环n-1次
第j轮要进行** n-i-1**次对比
//降序冒泡排序 #include冒泡优化算法void main() { int a[10]; int i,j,t; for(i=0;i<10;i++) { scanf("%d",&a[i]); } //开始排序 for(i=0;i<10-1;i++) { for(j=0;j<10-1-i;j++) { if(a[j] t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } for(i=0;i<10;i++) { printf("%d ",a[i]); } }
如果是相同的冒泡会一直排序 所以优化排序减少重复冗余
#includevoid main() { int a[10]; int i,j,t,flag; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10-1;i++){ flag = 0; for(j=0;j<10-i-1;j++){ if(a[j] t=a[j]; a[j]=a[j+1]; a[j+1]=t; flag=1; } } if(!flag){ break; } } for(i=0;i<10;i++){ printf("%d",a[i]); } }



