冒泡排序和插入排序 是不是实际上区别不大? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lhx2008

冒泡排序和插入排序 是不是实际上区别不大?

  •  
  •   lhx2008 2017 年 11 月 24 日 4578 次点击
    这是一个创建于 3073 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我能想到的两个区别:
    1. 插入排序是从靠近 已排序区 的一端开始排,冒泡排序是从远离 已排序区 的一端开始排
    2. 待排序的元素 到达指定的位置后,插入排序 不再继续检查,冒泡排序 仍然继续检查到尾端

    如果:
    冒泡排序如果手动指定一个 flag 变量,使到达位置后不再检查,
    那么,是不是可以说两个排序除了第一个微小的区别以外,基本没有区别?
    7 条回复    2017-11-24 15:10:02 +08:00
    neosfung
        1
    neosfung  
       2017 年 11 月 24 日
    是的
    冒泡其实就是插入排序的一种变种,实现方式不一样而已
    coderluan
        2
    coderluan  
       2017 年 11 月 24 日
    冒泡排序和插入排序的算法复杂度是一样的,所以在我眼中,他们根本没区别......
    czheo
        3
    czheo  
       2017 年 11 月 24 日
    差别挺大的啊。
    最大区别:冒泡时在 [未排序的部分] 里面找最大(或小),放到一端。插入是往 [已排序好] 的部分里面插入当前数。
    不变条件(invarient)不同:冒泡是,最大的数会先被排序好到一端。插入是,当前点的一侧是已排序的( sorted ),这些数并不一定是最大的。
    循环终止条件不同:冒泡必须遍历未排序的所有数字才能找到最大,插入找到合适位置就可以停。
    czheo
       
    czheo  
       2017 年 11 月 24 日
    czheo
        5
    czheo  
       2017 年 11 月 24 日
    liuminghao233
        6
    liuminghao233  
       2017 年 11 月 24 日 via iPhone
    升级版希尔排序可能会好一些
    blackjar
        7
    blackjar  
       2017 年 11 月 24 日
    冒泡跟选择差别不大才对吧 插入就是另外一种思路了
    冒泡跟选择都会把待排序列中最大或者最小值每次排出 插入则不是
    另外冒泡在每个单元操作中都要交换一次 而选择通常只是对 flag 的位置赋值一次(所以冒泡通常会更慢)
    当然这三种都是 O(n2)的排序 这个是一样的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1192 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 40ms UTC 17:53 PVG 01:53 LAX 10:53 JFK 13:53
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86