美文网首页
冒泡排序

冒泡排序

作者: Day_Winston | 来源:发表于2018-01-10 22:30 被阅读9次

    冒泡排序

    冒泡排序想将于桶排序,更为节省空间,对于跳跃幅度比较大的数不必去申请许多空间来进行比较。
    冒泡排序的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。

    • 例子1:现在有 12,35,99,100,111;把这5个数进行从大到小进行比较,我们只需要两两进行比较然后交换就可以了,简单说就是12和35比较谁大,很明显35大,交换它们的位置,现在就变成了35,12,99,100,111了,然后12再和99进行比较,99比12大,交换后变成35,99,12,100,111,然后按照刚才方法继续比较下去,再经过两次比较后就变成了35,99,100,111,12,现在12到最后了,注意现在只是移动了12的位置还有4个数没有进行交换,我们还有再从头进行再比较再交换,再进行n次比较交换后(偷懒不去计算具体多少次了),这个5个数现在变成这样了111,100,99,35,12;而这种交换像不像是“翻滚”,这就是"冒泡排序"。
    • 代码示例:
    int main()
    {
        int a[5], i, j, t;
        for(i = 0; i < 5; i++)
            scanf("%d",&a[i]);
        for(i = 0; i < 5; i++)
        {
            for(j = 0; j < 5-i; j++) 
            {
                if(a[j] < a[j+1])
                {
                    t = a[j];
                    a[j] = a[j+1];
                    a[j+1] = t;
                }
            }
        }
    
        for(i = 0; i < 5; i++)
            printf("%d\n",a[i]);
    }
    /*输入 12 35 99 100 111
     * 输出结果 111 100 99 35 12
     */
    

    相关文章

      网友评论

          本文标题:冒泡排序

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