冒泡排序重新认识
习题:将数组前5个元素顺序排序,后5个倒序排序
#include <stdio.h> void main(){ int a[10]={11,2,3,4,5,6,7,8,9,10}; int i,j; for(i=0;i<5;i++){ for(j=0;j<5-i-1;j++){ if(a[j]>a[j+1]){ int tmp=a[j]; a[j]=a[j+1]; a[j+1]=tmp; } } } for(i=5;i<10;i++){ //外循环代表需要遍历的元素 for(j=5;j<10-i+4;j++){ //内循环代表除去最大/最小元素之外需要遍历的元素,注意这边(j<?)的取值 if(a[j]<a[j+1]){ int tmp=a[j]; a[j]=a[j+1]; a[j+1]=tmp; } } } for(i=0;i<10;i++){ printf("%d ",a[i]); } printf("\n"); }
参考:冒泡排序图解