冒泡排序

每次比较都会将最大(小)的元素移动到边缘

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;
            }
    
}

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄