加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java实现二分查找

发布时间:2020-12-14 06:23:48 所属栏目:Java 来源:网络整理
导读:div class="cnblogs_code" srcArray[] = {3,5,11,17,21,23,28,30,32,50,64,78,81,95,101 0,srcArray.length - 1,81 /spanspan style="color: #008000;"gt;///spanspan style="color: #008000;"gt; 二分查找递归实现 /span span style="color: #0000ff;"gt;pu

<div class="cnblogs_code">

   
           srcArray[] = {3,5,11,17,21,23,28,30,32,50,64,78,81,95,1010,srcArray.length - 1,81    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; 二分查找递归实现   </span>
    <span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;static</span> <span style="color: #0000ff;"&gt;int</span> binSearch(<span style="color: #0000ff;"&gt;int</span> srcArray[],<span style="color: #0000ff;"&gt;int</span> start,<span style="color: #0000ff;"&gt;int</span> end,<span style="color: #0000ff;"&gt;int</span><span style="color: #000000;"&gt; key) {   

        </span><span style="color: #0000ff;"&gt;int</span> mid = (end - start) / 2 +<span style="color: #000000;"&gt; start;   
        </span><span style="color: #0000ff;"&gt;if</span> (srcArray[mid] ==<span style="color: #000000;"&gt; key) {   
            </span><span style="color: #0000ff;"&gt;return</span><span style="color: #000000;"&gt; mid;   
        }   
        </span><span style="color: #0000ff;"&gt;if</span> (start >=<span style="color: #000000;"&gt; end) {   
            </span><span style="color: #0000ff;"&gt;return</span> -1<span style="color: #000000;"&gt;;   
        } </span><span style="color: #0000ff;"&gt;else</span> <span style="color: #0000ff;"&gt;if</span> (key ><span style="color: #000000;"&gt; srcArray[mid]) {   
            </span><span style="color: #0000ff;"&gt;return</span> binSearch(srcArray,mid + 1<span style="color: #000000;"&gt;,end,key);   
        } </span><span style="color: #0000ff;"&gt;else</span> <span style="color: #0000ff;"&gt;if</span> (key <<span style="color: #000000;"&gt; srcArray[mid]) {   
            </span><span style="color: #0000ff;"&gt;return</span> binSearch(srcArray,start,mid - 1<span style="color: #000000;"&gt;,key);   
        }   
        </span><span style="color: #0000ff;"&gt;return</span> -1<span style="color: #000000;"&gt;;   
    } 

    </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; 二分查找普通循环实现   </span>
    <span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;static</span> <span style="color: #0000ff;"&gt;int</span> binSearch(<span style="color: #0000ff;"&gt;int</span> srcArray[],<span style="color: #0000ff;"&gt;int</span><span style="color: #000000;"&gt; key) {   
        </span><span style="color: #0000ff;"&gt;int</span> mid = srcArray.length / 2<span style="color: #000000;"&gt;;   
        </span><span style="color: #0000ff;"&gt;if</span> (key ==<span style="color: #000000;"&gt; srcArray[mid]) {   
            </span><span style="color: #0000ff;"&gt;return</span><span style="color: #000000;"&gt; mid;   
        }   

        </span><span style="color: #0000ff;"&gt;int</span> start = 0<span style="color: #000000;"&gt;;   
        </span><span style="color: #0000ff;"&gt;int</span> end = srcArray.length - 1<span style="color: #000000;"&gt;;   
        </span><span style="color: #0000ff;"&gt;while</span> (start <=<span style="color: #000000;"&gt; end) {   
            mid </span>= (end - start) / 2 +<span style="color: #000000;"&gt; start;   
            </span><span style="color: #0000ff;"&gt;if</span> (key <<span style="color: #000000;"&gt; srcArray[mid]) {   
               end </span>= mid - 1<span style="color: #000000;"&gt;;   
            } </span><span style="color: #0000ff;"&gt;else</span> <span style="color: #0000ff;"&gt;if</span> (key ><span style="color: #000000;"&gt; srcArray[mid]) {   
                start </span>= mid + 1<span style="color: #000000;"&gt;;   
            } </span><span style="color: #0000ff;"&gt;else</span><span style="color: #000000;"&gt; {   
                </span><span style="color: #0000ff;"&gt;return</span><span style="color: #000000;"&gt; mid;   
            }   
        }   
        </span><span style="color: #0000ff;"&gt;return</span> -1<span style="color: #000000;"&gt;;   
    } 
}</span></pre>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读