| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 189 人关注过本帖
标题:使用二分法查找String[] 里面的某一元素位置索引
只看楼主 加入收藏
mudi
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2018-12-19
结帖率:100%
  已结贴   问题点数:10  回复次数:2   
使用二分法查找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;
   }
}


2018-12-19 15:42
林月儿
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:湖南
等 级:版主
威 望:107
帖 子:1727
专家分:7563
注 册:2015-3-19
  得分:10 
       public static void main(String[] args) {
           String[] eg = {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
           Arrays.sort(eg);
           
System.out.println(Arrays.toString(eg));
           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;
       }

wechat    PrinceThumb
2018-12-19 19:35
mudi
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2018-12-19
  得分:0 
回复 2楼 林月儿
thanks very much~~,版主非常感谢。原来是没有先给数组排序造成的。谢谢!
2018-12-21 20:07







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

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