冒泡排序和选择排序
//n个整数,从小到大排序
/*
冒泡排序
    两两比较,大的排后面。第一次排序,得到最大的数排最后;
    第二次排序,得到第二大的数,排在倒数第二个位置。
    一共需要排序长度-1次
    前几次排序中确定好位置的元素不参与下一次排序,所以j=数组长度-1-i
*/
/*
#include<stdio.h>//冒泡排序
int main(){
    int a[5];     //数组长度
    int i, j;
    int t;
    for(i=0; i<5; i++){    //数组元素赋值
        scanf("%d", &a[i]);
    }
    for(i=0; i<5-1; i++){    ////外层循环,i是排序次数,i=数组长度-1
        for(j=0; j<5-1-i; j++){   //内层循环,j是进行比较的数组元素下标,j=数组长度-1-i
            if(a[j]>a[j+1]){
                t = a[j];  //t是中间变量
                a[j] = a[j+1];
                a[j+1] = t;
            }
        }
    }
    for(i=0; i<5; i++){  //输出数组
        printf("%d\t", a[i]);
    }
return 0;
}
*/
/*
选择排序
    第一个元素依次与后面的元素比较,如果有比第一个元素小的元素,第一个元素和这个元素交换位置;
    第二个元素依次与后面的元素比较,如果有比第二个元素小的元素,第二个元素和这个元素交换位置;
    ...
    一共判断长度-1次
*/
#include<stdio.h>//选择排序
int main(){
    int a[5];     //数组长度
    int i, j;
    int t;
    for(i=0; i<5; i++){    //数组元素赋值
        scanf("%d", &a[i]);
    }
    for(i=0; i<5-1; i++){    ////外层循环,i是循环次数,i=数组长度-1
        for(j=i+1; j<5; j++){   //内层循环,j是每次循环比较时,排在后面的数的元素下表
            if(a[i]>a[j]){
                t = a[j];  //t是中间变量
                a[j] = a[i];
                a[i] = t;
            }
        }
    }
    for(i=0; i<5; i++){  //输出数组
        printf("%d\t", a[i]);
    }
return 0;
}
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号