------
Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
选择排序: 相邻的两个元素相互比较,如果前面的大于后面的,则互换,一直比较到结尾。每次外层换前面的数 a[i] , a[j]每一轮都走到底。每次确定一个最小的留在前面。
int a[12]={23,1,54,68,12,12,44,84,98,13,54,96,11};
int i,j,temp;
for (i=0;i<11-1;i++){
for(j=i+1;j<11;j++){
if(a[i]>a[j]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
} } }
for(i=0;i<12;i++){
printf("%d\t",a[i]);
冒泡:
共循环 len 次。 每次内层开始为0,从a[0]开始依次和a[1] a[2]比较,大的数不断和后面的元素互换位置。每次确定一个大数在末尾。所以外层需要循环 len-1次。
int a[12]={23,1,54,68,12,12,44,84,98,13,54,96,11};
int i,j,temp;
for (i=0;i<11;i++){
for(j=0;j<11-i;j++){
这里的判断条件是大于的话,则大数下沉,
小于的话,则小数下沉。
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
} } }
for(i=0;i<12;i++){
printf("%d\t",a[i]);
}