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

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| 性久久久久久久久久久久| 亚洲深夜福利网站| 亚洲四色影视在线观看| 亚洲特级片在线| 亚洲一区二区免费看| 中文av一区特黄| 中文久久精品| 欧美一区二区国产| 久久精品二区三区| 日韩午夜在线播放| 亚洲一品av免费观看| 欧美中文在线免费| 亚洲摸下面视频| 久久久www| 欧美刺激午夜性久久久久久久| 猫咪成人在线观看| 欧美激情二区三区| 一本色道久久综合狠狠躁篇的优点 | 亚洲电影成人| 日韩一区二区精品在线观看| 亚洲制服丝袜在线| 久久久久一区二区三区四区| 欧美激情综合| 亚洲欧美区自拍先锋| 女人色偷偷aa久久天堂| 欧美日韩一区二区视频在线| 国产伦精品一区二区三区在线观看 | 亚洲高清久久网| 亚洲另类自拍| 久久精品99久久香蕉国产色戒| 亚洲欧洲日本专区| 99精品99| 免费亚洲一区| 黄色另类av| 久久狠狠久久综合桃花| 亚洲最新视频在线播放| 你懂的视频一区二区| 国产综合色在线视频区| 午夜精品一区二区三区在线视| 亚洲国产综合91精品麻豆| 久久精彩视频| 国产欧美日韩综合一区在线观看| 99亚洲伊人久久精品影院红桃| 另类人畜视频在线| 欧美中文字幕久久| 国产女主播一区| 亚洲欧美在线观看| 亚洲精品久久久久久久久| 久久久久久夜| 国产午夜一区二区三区| 99国产成+人+综合+亚洲欧美| 亚洲在线成人| 欧美成人精品在线观看| 99亚洲一区二区| 日韩视频一区二区三区| 欧美成人免费在线| 欧美激情一区二区| 99热在这里有精品免费| 小处雏高清一区二区三区 | 欧美影院精品一区| 99国产精品视频免费观看一公开| 欧美中文字幕在线播放| 久久动漫亚洲| 欧美不卡一区| 一本大道久久a久久精品综合| 欧美精品成人| 国产精品一区二区三区四区| 在线看日韩av| 亚洲一区二区综合| 六月天综合网| 野花国产精品入口| 久久婷婷人人澡人人喊人人爽| 欧美日韩国产黄| 国产拍揄自揄精品视频麻豆| 亚洲国产高清视频| 好吊成人免视频| 亚洲国产精品欧美一二99| 亚洲美女91| 欧美一区午夜精品| 亚洲国产精品va在线观看黑人| 一区二区欧美国产| 久热re这里精品视频在线6| 欧美激情国产精品| 伊人久久久大香线蕉综合直播| 亚洲一区二区三区视频| 欧美成人四级电影| 久久超碰97中文字幕| 午夜精品久久久久影视| 在线观看久久av| 欧美一区91| 一区二区三区成人| 欧美大尺度在线观看| 国产一区二区三区成人欧美日韩在线观看| 午夜免费电影一区在线观看| 亚洲精品一二| 久久夜色精品国产噜噜av| 美女精品在线| 韩国av一区二区三区四区| 国产在线观看一区| 一区二区三区四区五区精品视频| 欧美综合国产精品久久丁香| 日韩午夜电影av| 欧美精品一区二区在线观看| 亚洲欧洲精品一区二区精品久久久| 欧美在线亚洲在线| 亚洲视频免费在线观看| 欧美视频1区| 在线视频你懂得一区 | 久久综合久久综合这里只有精品| 欧美香蕉视频| 一本一本久久| 国产欧美日韩在线观看| 亚洲一区二区黄色| 亚洲国产精品999| 欧美一级片一区| 久久欧美肥婆一二区| 亚洲综合国产精品| 国产精品毛片a∨一区二区三区|国| 亚洲伦理精品| 夜夜精品视频一区二区| 国产精品久久福利| 激情久久综合| 久久成人人人人精品欧| 尤物yw午夜国产精品视频| 欧美成人综合一区| 欧美日韩国产高清视频| 亚洲欧美一区二区激情| 欧美伊人久久久久久午夜久久久久 | 欧美一区2区三区4区公司二百| 亚洲视频电影图片偷拍一区| 欧美亚一区二区| 欧美亚洲免费电影| 欧美一级久久久久久久大片| 国产一区二区福利| 欧美成人免费网站| 欧美日韩午夜在线视频| 性欧美大战久久久久久久免费观看| 欧美一区二区三区在线观看视频| 激情成人中文字幕| 亚洲精品久久久久久一区二区| 久久福利精品| 久久亚洲精品一区二区| 欧美黑人在线播放| 欧美一级视频| 欧美精品一区二区三区在线播放| 午夜综合激情| 欧美h视频在线| 欧美一区二区播放| 欧美黑人国产人伦爽爽爽| 亚洲成色www久久网站| 免费一区二区三区| 欧美一级艳片视频免费观看| 久热爱精品视频线路一| 中国av一区| 欧美国产日韩a欧美在线观看| 久久精品成人欧美大片古装| 亚洲免费网站| 在线午夜精品自拍| 麻豆国产精品va在线观看不卡 | 欧美激情一区| 国产精品欧美风情| 欧美激情二区三区| 国产一区三区三区| 在线一区二区三区做爰视频网站| 国产真实久久| 亚洲欧美日韩精品久久奇米色影视 | 美女图片一区二区| 欧美久久九九| 欧美大片在线看| 国产视频久久网| 久久久噜噜噜久久中文字幕色伊伊| 在线观看视频一区| 亚洲欧美在线免费| 亚洲图片在线| 欧美精品久久久久久久久老牛影院 | 国产精品青草久久久久福利99| 欧美国产综合视频| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲欧美春色| 亚洲精品五月天| 一区二区三区四区在线| 免费视频一区| 亚洲电影在线观看| 亚洲娇小video精品| 久久激情一区| 米奇777在线欧美播放| 精品99一区二区三区| 香蕉久久国产| 亚洲精品乱码久久久久久日本蜜臀 | 久久久97精品| 国产精品久久久久aaaa九色| 在线午夜精品| 亚洲第一主播视频| 国产偷国产偷亚洲高清97cao| 亚洲欧美另类在线| 久久精品久久99精品久久| 国产一区二区欧美|