<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    學海拾遺

    生活、技術、思想無處不在學習
    posts - 52, comments - 23, trackbacks - 0, articles - 3
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    添加一個二路冒泡算法

    Posted on 2009-02-21 14:16 tanzek 閱讀(578) 評論(0)  編輯  收藏 所屬分類: 技術學習

    看Robert Sedgewick的《algorithms in c》一書時,在講到冒泡算法的時候在練習中提到了“搖擺排序”(中文版書中的P206面的第30題),然而細細理解出來就是指的二路冒泡,其實在Donald E.Knuth的《計算機程序設計藝術 第三卷 排序與查找》里面也有講過,名字記得不是很清楚了。
    暫時來講我自己實現了一個,里面的性能分析和調優留在以后再做,先把它放在這里和大家一起共享一下,歡迎指正。

    /*
    *?by?tanzek.?2009-02-21 .?
    * implement in dev cpp.
    */

    #include?
    < stdio.h >
    #include?
    < stdlib.h >

    #define ?n?10

    void ?print( int ? * a,? int ?m,? int ?l,? int ?r)
    {
    ????
    for ( int ?i = 0 ;?i < m;?i ++ )
    ????{
    ????????printf(
    " %d? " ,?a[i]);????????
    ????}?????
    ????printf(
    " --->l=%d,?r=%d\n " ,?l,?r);
    }

    int ?count? = ? 0 ;

    int ?main()
    {
    ????
    int ?a[ 10 ]? = ?{ 104 , 21 , 33 , 4 , 8 , 102 , 7 , 89 , 91 , 11 };
    ????
    int ?l,?r;
    ????l?
    = ? - 1 ;?r? = ?n;
    ????
    int ?t? = ? 1 ;
    ????
    int ?temp;
    ????
    int ?j;
    ????
    while (t? > ? 0 )
    ????{
    ????????count?
    ++ ;
    ????????printf(
    " 第%d趟\n " ,?count);
    ?????????
    ????????t?
    = ? - 1 ;
    ????????
    for (j = r - 1 ;?j > l + 1 ;?j -- )
    ????????{
    ????????????
    if (a[j]? < ?a[j - 1 ])
    ????????????{
    ????????????????temp
    = a[j];?a[j] = a[j - 1 ];?a[j - 1 ] = temp;
    ????????????????t?
    = ?j? - ? 1 ;
    ????????????}
    ????????}
    ????????l?
    = ?j;
    ????????
    for (j = l + 1 ;?j < r - 1 ;?j ++ )
    ????????{
    ????????????
    if (a[j]? > ?a[j + 1 ])
    ????????????{
    ????????????????temp
    = a[j];?a[j] = a[j + 1 ];?a[j + 1 ] = temp;
    ????????????????t?
    = ?j + 1 ;
    ????????????}
    ????????}
    ????????r?
    = ?j;
    ????????print(a,?n,?l,?r);
    ????}
    ????
    ????printf(
    " \ncount?=?%d\n " ,?count);
    ????system(
    " PAUSE " );
    ????
    return ? 0 ;
    }

    同時,通過GOOGLE搜索,也搜到一篇二路冒泡算法實現的文章,也放在這里供大家一起參考。
    武林外傳 http://qzone.qq.com/blog/53631006-1210520905
    主站蜘蛛池模板: 亚洲国产人成精品| 国产99视频精品免费视频76| 亚洲日本精品一区二区| 亚洲Aⅴ无码专区在线观看q| 亚洲春色另类小说| 亚洲精品伦理熟女国产一区二区 | 99国产精品免费观看视频| 9420免费高清在线视频| 黄a大片av永久免费| 亚洲VA综合VA国产产VA中| 美女露100%胸无遮挡免费观看| 十八禁视频在线观看免费无码无遮挡骂过 | 在线91精品亚洲网站精品成人| 最新久久免费视频| 99re热免费精品视频观看| 亚洲成片观看四虎永久| 一区二区在线视频免费观看| 免费A级毛片无码免费视| 亚洲午夜成人精品电影在线观看| 亚洲免费在线视频观看| 中文字幕手机在线免费看电影| 成人毛片免费观看视频大全| 亚洲国产一区二区a毛片| 成人黄色免费网址| 亚洲第一福利网站| 日韩不卡免费视频| 亚洲人成依人成综合网| 永久免费AV无码国产网站| 亚洲av无码专区首页| 成人免费AA片在线观看| 亚洲av无码日韩av无码网站冲| 亚洲成?Ⅴ人在线观看无码| 91在线免费视频| 亚洲成a人不卡在线观看| 手机看片久久国产免费| youjizz亚洲| 8888四色奇米在线观看免费看| 亚洲高清有码中文字| 成人女人A级毛片免费软件| 特级aa**毛片免费观看| 久久久久亚洲AV无码专区体验|