<span class="hljs-keyword">public <span class="hljs-keyword">static <T extends Comparable> <span class="hljs-function"><span class="hljs-keyword">int <span class="hljs-title">binarySearch<span class="hljs-params">(T[] x,T key) {
<span class="hljs-keyword">return binarySearch(x,x.length- <span class="hljs-number">1,key);
}
<span class="hljs-comment">// 使用循环实现的二分查找
<span class="hljs-keyword">public <span class="hljs-keyword">static <span class="hljs-function"><span class="hljs-keyword">int <span class="hljs-title">binarySearch<span class="hljs-params">(T[] x,Comparator comp) {
<span class="hljs-keyword">int low = <span class="hljs-number">0;
<span class="hljs-keyword">int high = x.length - <span class="hljs-number">1;
<span class="hljs-keyword">while (low <= high) {
<span class="hljs-keyword">int mid = (low + high) >>> <span class="hljs-number">1;
<span class="hljs-keyword">int cmp = comp.compare(x[mid],key);
<span class="hljs-keyword">if (cmp < <span class="hljs-number">0) {
low= mid + <span class="hljs-number">1;
}
<span class="hljs-keyword">else <span class="hljs-keyword">if (cmp > <span class="hljs-number">0) {
high= mid - <span class="hljs-number">1;
}
<span class="hljs-keyword">else {
<span class="hljs-keyword">return mid;
}
}
<span class="hljs-keyword">return -<span class="hljs-number">1;
} (编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|