美文网首页C Language
排序方法之冒泡排序法

排序方法之冒泡排序法

作者: 水刃一木__九日 | 来源:发表于2017-04-17 17:25 被阅读0次

    排序方法是C语言中一种重要的、基本的算法。一共有两种规律:升序和降序。升序是将数据从小到大排列,而降序是将数据从大到小排列。今天,我们来讲解排序方法中的冒泡排序法。我们知道,当烧开水时,烧开前气泡由大变小,烧开后,气泡由小变大。而我们的冒泡排序法也与之类似。


    比如,有4个数字:{10、6、3、9},要求升序排列。

    ##第一轮

    ####第一步,将{10、6、3、9}中10与6进行比较,10>6,将10与6互换,得到{6、10、3、9}。10这个比6大的数向后移相当于气泡上升过程中变大。

    ####第二步,将{6、10、3、9}中10与3进行比较,10>3,将10与3互换,得到{6、3、10、9}。

    ####第三步,将{6、3、10、9}中的10与9进行比较,10>9,将10与9互换,得到{6、3、9、10}。

    ##第一轮结束,从{10、6、3、9}中找出最大值10。10在最后位置,不再变动。

    ##第二轮

    ####第一步,将{6、3、9}中的6与3比较,6>3,将6与3互换,得到{3、6、9}。

    ####第二步,将{6、3、9}中的6与9比较,6<9,将6与9不互换,得到{3、6、9}。

    ##第二轮结束,从{6、3、9}中找出最大值9。9在最后位置,不再变动。

    ##第三轮

    ####第一步,将{3、6}中3与6比较,3<6,将3与6不互换,得到{3、6}。

    ##第三轮结束,从{3、6}中找出最大值6。6在最后位置,不再变动。

    从上面可以知道,4个数需要比较3轮,每轮次数递减。类比可知,n个数需要比较(n-1)轮,每轮次数递减。降序排序与上述过程相似,这里就不过多地赘述了。


    下面用一个程序来说明。

    ##程序:

    #include

    int main()

    {

    int a[4];

    int i,j,t;

    printf("请输入4个整数:\n");

    for (i=0;i<4;i++)

    {

    scanf("%d",&a[i]);

    }

    for (i=0;i<3;i++)

    {

    for (j=0;j<3;j++)

    {

    if(a[j]>a[j+1])

    {

    t=a[j];

    a[j]=a[j+1];

    a[j+1]=t;

    }

    }

    }

    printf("从小到大排列为:\n");

    for(i=0;i<4;i++)

    {

    printf("%d ",a[i]);

    }

    printf("\n");

    return 0;

    }

    ##结果:

    升序排序

    冒泡排序法是排序法中的一个重要的分支,一定要重点掌握。

    相关文章

      网友评论

        本文标题:排序方法之冒泡排序法

        本文链接:https://www.haomeiwen.com/subject/vsntzttx.html