跳转至

冒泡排序

升序:

int main(){
    const int num=9;
    int a[num]={1,3,4,2,6,4,7,9,7};
    for(int i=0;i<num-1;i++){ // 第 i+1 趟冒泡,有 i 个元素已经在正确位置
        for(int j=i;j<num-1;j++){
            if(a[j]>a[j+1]) std::swap(a[j],a[j+1]);
        }
    }
    for(int i=0;i<num;i++) std::cout<<a[i]<<' ';
    return 0;
}

降序:

int main(){
    const int num=9;
    int a[num]={1,3,4,2,6,4,7,9,7};
    for(int i=0;i<num-1;i++){
        // 注意 j 的枚举顺序要改变
        for(int j=num-1;j>i;j--){
            if(a[j]>a[j-1]) std::swap(a[j],a[j-1]);
        }
    }
    for(int i=0;i<num;i++) std::cout<<a[i]<<' ';
    return 0;
}

评论