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

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

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

    隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0
    數據加載中……

    拆半查找的遞歸和非遞歸算法

    本文為原創,如需轉載,請注明作者和出處,謝謝!

    #include <stdio.h>  

    int binary_search(int x, int data[], int b, int e) 
    {     
        
    int i;     
        
    while(b <= e)     
        {     
            i 
    = (b + e) / 2;     
            
    if(data[i] == x) return i;     
            
    if(data[i] < x)          
                b 
    = i + 1;     
            
    else         
                e 
    = i - 1;             
        }     
        
    return -1;     
    }  

    int binary_search_recursion(int x, int data[], int b, int e) 
    {     
        
    int i;     
        i 
    = (b + e) / 2;     
        
    if(b > e) return -1;     
        
    if(data[i] != x)     
        {     
            
    if(x < data[i])         
                
    return binary_search_recursion(x, data, 0, i - 1);     
            
    else         
                
    return binary_search_recursion(x, data, i + 1, e);     
        }     
        
    else         
            
    return i; 
    }  

    int main() 
    {     
        
    int data[] = {14579};     
        printf(
    "%d \n", binary_search_recursion(9, data, 04));     
        printf(
    "%d \n", binary_search(9, data, 04));     
        printf(
    "%d \n", binary_search_recursion(90, data, 04));     
        printf(
    "%d \n", binary_search(89, data, 04));     
        
    return 0




    Android開發完全講義(第2版)(本書版權已輸出到臺灣)

    http://product.dangdang.com/product.aspx?product_id=22741502



    Android高薪之路:Android程序員面試寶典 http://book.360buy.com/10970314.html


    新浪微博:http://t.sina.com.cn/androidguy   昵稱:李寧_Lining

    posted on 2008-05-11 22:26 銀河使者 閱讀(2939) 評論(4)  編輯  收藏 所屬分類: algorithmC/C++ 原創

    評論

    # re: 拆半查找的遞歸和非遞歸算法  回復  更多評論   

    2分法不是這樣寫的吧?
    2008-05-12 10:26 | apPZ

    # re: 拆半查找的遞歸和非遞歸算法  回復  更多評論   

    嗯,應該是的,只是測試的例子多了些,也看了好半天。汗``
    2008-05-12 15:56 | dreamingnest

    # re: 拆半查找的遞歸和非遞歸算法  回復  更多評論   

    i = (b + e) / 2; 有問題,會溢出的。sun的jdk里面的二分查找源碼原先也有同樣的問題。
    2008-05-12 19:49 | www

    # re: 拆半查找的遞歸和非遞歸算法  回復  更多評論   

    沒錯 i = (b + e) / 2; 這句有隱患,當b+e大于int范圍時就會溢出。解決的方法是i = b/2 + e/2。這樣用2先除一下,就不會溢出了。
    2008-05-12 21:48 | 銀河使者
    主站蜘蛛池模板: 亚洲精品白色在线发布| 亚洲精品乱码久久久久66| 亚洲欧洲尹人香蕉综合| 无码囯产精品一区二区免费| 国产亚洲色婷婷久久99精品 | 亚洲一级毛片免观看| 免费看男女下面日出水来| 亚洲日产2021三区| 天天摸天天操免费播放小视频| 亚洲资源最新版在线观看| 成人爽A毛片免费看| 亚洲国产精品成人午夜在线观看| 精品国产免费一区二区| 老妇激情毛片免费| 亚洲日本一区二区三区在线| 无码人妻一区二区三区免费n鬼沢| 亚洲AV无码第一区二区三区| 1a级毛片免费观看| 亚洲av永久中文无码精品综合| 免费人成在线观看视频播放| 亚洲国产免费综合| 久久99亚洲网美利坚合众国| 国产免费久久精品99re丫y| 亚洲精品av无码喷奶水糖心| 国产精品亚洲αv天堂无码| 99视频在线精品免费| 亚洲欧美熟妇综合久久久久| 亚洲国产香蕉人人爽成AV片久久 | 免费人妻无码不卡中文字幕系| 亚洲av产在线精品亚洲第一站| 免费va在线观看| 免费无码VA一区二区三区| 蜜桃传媒一区二区亚洲AV| 国产亚洲一区二区在线观看| 在线观看免费人成视频| a毛片成人免费全部播放| 亚洲美女一区二区三区| 亚洲成a人无码av波多野按摩| 无码免费一区二区三区免费播放| 亚洲小说图区综合在线| 亚洲中文字幕在线第六区|