标题:使用二分法查找String[] 里面的某一元素位置索引
取消只看楼主
mudi
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2018-12-19
结帖率:100%
已结贴  问题点数:10 回复次数:1 
使用二分法查找String[] 里面的某一元素位置索引
我尝试用以下方法去确定某一个String对象在数组中的位置索引,但是不管尝试其中哪一个数组元素,输出结果都是-1,请论坛的大神帮忙看看程序的问题,
以下写的程序,先提前谢谢各位!
程序代码:
public class BinarySearchTest03 {
   public static void main(String[] args) {
       String[] eg = {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
       System.out.println(binarySearch(eg,"two"));
   }
   public static int binarySearch(String[] Strings, String target) {
       int min = 0;
       int max = Strings.length - 1;
       while(min < max) {
           int mid = (max + min)/2;
           int compare = Strings[mid].compareTo(target);
           if(compare == 0) {
               return mid;
           }else if(compare < 0) {
               min = mid + 1;
           }else {
               max = mid - 1;
           }
       }
       return -1;
   }
}


搜索更多相关主题的帖子: String int min max mid 
2018-12-19 15:42
mudi
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2018-12-19
得分:0 
回复 2楼 林月儿
thanks very much~~,版主非常感谢。原来是没有先给数组排序造成的。谢谢!
2018-12-21 20:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-492127-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.526916 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved