冒泡排序重新认识

习题:将数组前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("
");
}
    

参考:冒泡排序图解

原文地址:https://www.cnblogs.com/stellar/p/8743780.html