青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 183,  comments - 10,  trackbacks - 0

二分查找的變形

傳統(tǒng)的二分查找
數(shù)組時有序的,要么升序要么降序,這里不考慮重復(fù)元素出現(xiàn)的情況。

int foo(int a[], int n, int item)
{
    
int left = 0, right = n - 1;
    
int middle = 0;
    
while (left <= right)
    {
        middle 
= (left + right) / 2;
        
if (item > a[middle])
        {
            left 
= middle + 1;
        }
        
else if (item < a[middle])
        {
            right 
= middle - 1;
        }
        
else
        {
            
return middle;
        
        }
    }
    
return -1;
}

 


二分查找的變形
給定一個數(shù)組 int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
如果對該數(shù)組調(diào)整為
{6, 7, 8, 9, 10, 1, 2, 3, 4, 5}
調(diào)整后即是兩個連續(xù)有序序列,只不過整體不有序
還是用二分策略,但是具體細(xì)節(jié)需要改進
整體結(jié)構(gòu)還是一樣的
具體補充的是當(dāng)待查找元素與中間元素不相等時,
如果小于,還要檢測 item 與 a[left] 的大小關(guān)系
如果大于,還要檢測 item 與 a[right] 的大小關(guān)系

int bar(int a[], int n, int item)
{
    
int left = 0, right = n - 1;
    
int middle = 0;
    
while (left <= right)
    {
        middle 
= (left + right) / 2;
        
if (item < a[middle])
        {
            
if (a[left] < item)
            {
                right 
= middle - 1;
            }
            
else if (a[left] > item)
            {
                left 
= middle + 1;
            }
            
else
            {
                
return left;
            }
            
// right = middle - 1;
        }
        
else if (item > a[middle])
        {
            
if (a[right] > item)
            {
                left 
= middle + 1;
            }
            
else if (a[right] < item)
            {
                right 
= middle - 1;
            }
            
else
            {
                
return right;
            }
        }
        
else
        {
            
return middle;
        }
    }
    
return -1;
}

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int foo(int a[], int n, int item)
 5 {
 6     int left = 0, right = n - 1;
 7     int middle = 0;
 8     while (left <= right)
 9     {
10         middle = (left + right) / 2;
11         if (item > a[middle])
12         {
13             left = middle + 1;
14         }
15         else if (item < a[middle])
16         {
17             right = middle - 1;
18         }
19         else
20         {
21             return middle;
22         
23         }
24     }
25     return -1;
26 }
27 
28 int bar(int a[], int n, int item)
29 {
30     int left = 0, right = n - 1;
31     int middle = 0;
32     while (left <= right)
33     {
34         middle = (left + right) / 2;
35         if (item < a[middle])
36         {
37             if (a[left] < item)
38             {
39                 right = middle - 1;
40             }
41             else if (a[left] > item)
42             {
43                 left = middle + 1;
44             }
45             else
46             {
47                 return left;
48             }
49             // right = middle - 1;
50         }
51         else if (item > a[middle])
52         {
53             if (a[right] > item)
54             {
55                 left = middle + 1;
56             }
57             else if (a[right] < item)
58             {
59                 right = middle - 1;
60             }
61             else
62             {
63                 return right;
64             }
65         }
66         else
67         {
68             return middle;
69         }
70     }
71     return -1;
72 }
73 
74 int main()
75 {
76     int a[] = {12345678910};
77     cout << foo(a, sizeof (a) / sizeof (*a), 3<< endl;
78     int b[] = {67891012345};
79     cout << bar(b, sizeof (b) / sizeof (*b), 5<< endl;
80     return 0;
81 }

實現(xiàn):



posted on 2011-10-29 00:04 unixfy 閱讀(195) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            日韩视频在线一区二区三区| 欧美日韩国产高清| 亚洲国产精品成人| 久久国产欧美日韩精品| 亚洲新中文字幕| 亚洲欧美日韩精品一区二区| 午夜久久影院| 久久一综合视频| 欧美成人亚洲成人| 亚洲黄一区二区| 亚洲国产精品国自产拍av秋霞| 另类酷文…触手系列精品集v1小说| 亚洲欧美日韩精品一区二区 | 欧美r片在线| 欧美成人a∨高清免费观看| 欧美激情视频免费观看| 国产精品福利网| 精品va天堂亚洲国产| 亚洲精品免费观看| 午夜精品在线| 欧美激情视频免费观看| 亚洲深爱激情| 免费不卡欧美自拍视频| 国产精品三级视频| 亚洲精品视频在线| 久久成人久久爱| 亚洲欧洲精品一区二区三区波多野1战4| 日韩一级免费观看| 久久久99免费视频| 欧美精品一区二区视频| 国产一区视频在线观看免费| 日韩视频在线你懂得| 久久全球大尺度高清视频| 亚洲精品社区| 久久久久九九九| 国产精品三上| 一区二区三区精品| 欧美 日韩 国产一区二区在线视频| 一区二区不卡在线视频 午夜欧美不卡'| 欧美在线一二三区| 国产精品性做久久久久久| 日韩一区二区免费高清| 免费久久精品视频| 欧美在线观看视频一区二区| 国产精品二区二区三区| 亚洲欧洲日本一区二区三区| 久久九九免费视频| 亚洲欧美国产另类| 国产精品高清在线| 亚洲一区综合| 一本色道久久综合亚洲精品按摩 | 久久gogo国模裸体人体| 亚洲免费大片| 欧美久久影院| 亚洲免费观看在线观看| 欧美韩日精品| 欧美77777| 亚洲人妖在线| 亚洲国产99精品国自产| 欧美成人三级在线| 亚洲人线精品午夜| 久久在线视频| 欧美理论视频| 在线免费一区三区| 欧美bbbxxxxx| 久久亚洲精品中文字幕冲田杏梨| 亚洲午夜激情免费视频| 狼狼综合久久久久综合网| 国内成人精品视频| 久久精品国产在热久久| 久久国产精品一区二区| 国产一区二区三区在线观看网站 | 极品日韩久久| 亚洲男人影院| 欧美日韩中字| 在线一区亚洲| 一区二区三区免费看| 欧美日韩视频一区二区| 亚洲一区二区在线免费观看视频| 亚洲精品一区中文| 欧美午夜精品久久久久久久 | 亚洲精品色婷婷福利天堂| 欧美不卡激情三级在线观看| 欧美大片一区二区三区| 亚洲一级在线| 亚洲精品美女| 欧美日韩精品系列| 欧美一二三区精品| 久久先锋资源| 亚洲免费在线观看视频| 久久久xxx| 亚洲新中文字幕| 久久精品五月| 在线视频日本亚洲性| 欧美一区二区视频观看视频| 亚洲欧洲日本专区| 亚洲一二三区精品| 亚洲欧洲日产国产网站| 亚洲欧美www| 日韩午夜免费| 久久激情综合网| 亚洲欧美日本国产有色| 美日韩精品视频| 国产日韩亚洲| 亚洲最新视频在线播放| 国产日韩欧美一区在线| 91久久中文字幕| 国产婷婷色一区二区三区四区| 欧美韩日亚洲| 黄色欧美成人| 在线亚洲一区观看| 亚洲激情婷婷| 久久福利电影| 久久国产精品99久久久久久老狼| 欧美激情成人在线| 久久久久88色偷偷免费| 国产精品久久久久久久久久久久久| 欧美电影在线| 韩日成人av| 午夜伦理片一区| 99成人精品| 欧美黑人在线播放| 欧美国产日韩在线观看| 一区免费视频| 久久久免费精品视频| 久久精品人人做人人爽| 国产精品久久久一本精品| 亚洲乱码国产乱码精品精98午夜| 亚洲人成7777| 欧美3dxxxxhd| 亚洲激情成人在线| 亚洲黄色免费网站| 另类国产ts人妖高潮视频| 久久香蕉国产线看观看网| 国产亚洲福利一区| 亚洲欧美日韩区| 久久精品首页| 伊人婷婷久久| 久久久久久久成人| 久久男人资源视频| 国产一区二区三区高清| 欧美一级免费视频| 欧美在线观看天堂一区二区三区| 国产精品久久精品日日| 宅男噜噜噜66一区二区| 亚洲欧美日韩国产| 国产一区二区精品在线观看| 久久精品一本| 亚洲成色777777女色窝| 亚洲伦理在线观看| 国产精品成人观看视频免费 | 午夜精品一区二区三区在线视 | 久久久久综合一区二区三区| 国产在线乱码一区二区三区| 久久久夜精品| 日韩一级片网址| 欧美淫片网站| 亚洲国产精品成人久久综合一区| 欧美激情精品久久久久久变态| 亚洲精品影视在线观看| 欧美伊人久久大香线蕉综合69| 激情六月婷婷久久| 欧美v日韩v国产v| 99热免费精品在线观看| 羞羞视频在线观看欧美| 亚洲国产精品成人综合色在线婷婷| 欧美国产三区| 久久精品动漫| 欧美二区乱c少妇| 一本色道久久88亚洲综合88| 国产精品久久激情| 久久婷婷国产麻豆91天堂| 亚洲精品中文字幕女同| 欧美伊人久久| 99精品视频一区| 国产曰批免费观看久久久| 欧美高清视频一区| 亚洲欧美日韩区| 亚洲美女黄色| 美女精品国产| 午夜天堂精品久久久久| 亚洲激情在线| 红桃视频国产精品| 欧美视频在线观看免费网址| 久久亚洲精品一区二区| 亚洲综合视频网| 亚洲品质自拍| 欧美韩国在线| 久久亚洲影院| 欧美在线地址| 亚洲你懂的在线视频| 亚洲乱码国产乱码精品精98午夜| 国产一区二区三区久久精品| 国产精品a久久久久久| 欧美成人午夜激情视频| 久久精品视频亚洲| 亚洲欧美在线网| 亚洲在线观看视频网站| 99精品久久免费看蜜臀剧情介绍| 欧美高清在线|