冒泡排序重新认识

Posted Hsin wang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序重新认识相关的知识,希望对你有一定的参考价值。

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

参考:冒泡排序图解

 

以上是关于冒泡排序重新认识的主要内容,如果未能解决你的问题,请参考以下文章

八大数据排序法冒泡排序法的图形理解和案例实现 | C++

排序算法总结

数据结构(15)---排序(冒泡排序, 快速排序, 归并排序, 计数排序)

JAVA-初步认识-第五章-数组-常见操作-排序位置

经典算法学习——非循环双向链表实现冒泡排序(不带头结点)

数据结构排序