A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘圣伟 中级黑马   /  2012-8-17 11:37  /  1471 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘圣伟 于 2012-8-17 11:42 编辑

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class CollectionsTest {        
        public static void main(String[] args) {               
                List<String> list = new ArrayList<String>();
               
                list.add("afdf");
                list.add("dfffdf");
                list.add("badffafdf");
                list.add("cadaffdf");
               
                sop(list);
                //sop(Collections.max(list,new StrlenComp()));
                Collections.sort(list);
                int index = halfSearch(list,"af");
                System.out.println(index);
        }        
        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
        public static int halfSearch(List<String> list,String key){
                int max ,min,mid;
                max = list.size()-1;
                min = 0;
                        while(min<=max);
                        {
                                mid = (max+min)>>1;//  /2
                                String str = list.get(mid);        
                                System.out.println(str);
                                int num = str.compareTo(key);
                                if(num>0)
                                        max = mid -1;
                                else if(num<0)
                                        min = mid +1;
                                else
                                        return mid;
                                       
                        }
                        return -min-1;
        }
        

}

折半查找,打不出返回值,哪里错了呢?

1 个回复

倒序浏览
在判断循环哪里多了个";",条件一直为true,所以一直循环,跳不出来。。。

aa.jpg (2.17 KB, 下载次数: 16)

aa.jpg
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马