二进制搜索Java实现算法

编程入门 行业动态 更新时间:2024-10-08 08:25:24
本文介绍了二进制搜索Java实现算法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我需要实现二进制搜索算法帮助,可有人告诉我什么是错我的code:

公众诠释的bsearch(项目idToSearch){     INT lowerBoundary = 0;     INT upperBoundary = myStore.size() - 1;     INT中期= -1;     而(upperBoundary> = lowerBoundary){         中期=(lowerBoundary + upperBoundary)/ 2;         //如果在中间的元素小于被搜索项,比设置为中等新下界         如果(myStore.get(中间)pareTo(idToSearch)℃,){             lowerBoundary =中旬 - 1;         } 其他 {             upperBoundary =中等+ 1;         }     } //结束while循环     如果(myStore.get(中间).equals(idToSearch)){         返回中旬;     } 其他 {         返回-1; //项目未找到     } } // end方法

解决方案

我想你犯了一个错误,当更新 lowerBoundary 和 upperBoundary 。

这可能是:

如果(myStore.get(MID)pareTo(idToSearch)小于0){         lowerBoundary =中等+ 1;     } 其他 {         upperBoundary =中旬 - 1;     }

和你为什么不打破循环,如果你发现在元素中期?

I need help with implementing the binary search algorithm, can someone tell me what's wrong with my code:

public int bsearch(Item idToSearch) { int lowerBoundary = 0; int upperBoundary = myStore.size() - 1; int mid = -1; while(upperBoundary >= lowerBoundary) { mid = (lowerBoundary + upperBoundary) / 2; //if element at middle is less than item to be searched, than set new lower boundary to mid if(myStore.get(mid)pareTo(idToSearch) < 0) { lowerBoundary = mid - 1; } else { upperBoundary = mid + 1; } } //end while loop if(myStore.get(mid).equals(idToSearch)) { return mid; } else { return -1; // item not found } } // end method

解决方案

I think you made a mistake when update lowerBoundary and upperBoundary.

It may be:

if(myStore.get(mid)pareTo(idToSearch) < 0){ lowerBoundary = mid + 1; } else { upperBoundary = mid - 1; }

And why don't you break the loop if you find the element at mid?

更多推荐

二进制搜索Java实现算法

本文发布于:2023-11-29 02:25:32,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1644926.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:算法   Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!