冒泡、选择、插入排序
冒泡排序
每次比较都会将最大(小)的元素移动到边缘
void maopao(int a[],int l){ int i,j; for(i=0;i<l-1;i++) for(j=i+1;j<l;j++){ if(a[i]>a[j]){ int t = a[i]; a[i] = a[j]; a[j] = t; } } }
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
选择排序
与冒泡排序相识,用k标识,如果k不等于本身则交换元素值
void xuanze(int a[],int l){ int i,j,k; for(i=0;i<l-1;i++){ k = i; for(j=i+1;j<l;j++){ if(a[k]>a[j]) k = j; } if(i!=k){ int t = a[k]; a[k] = a[i]; a[i] = t; } } }
插入排序
将数组分为有序区和无序区,开始时第一个元素就是有序区,与第二个元素比较,第一二元素排好序后,再将第三个元素与前2个元素比较插入到合适的位置。后面依次操作。
void insert(int a[],int l){ int i,j; for(i=1;i<l;i++) for(j=i-1;j>=0;j--) if(a[j]>a[j+1]){ int t = a[j+1]; a[j+1] = a[j]; a[j] = t; } }
更多精彩