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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. import java.util.*;
  2. class  CollectionsDemo3
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 List<String> list=new ArrayList<String>();
  7.                 list.add("ag");
  8.                 list.add("sdf");
  9.                 list.add("cbadd");
  10.                 list.add("kk");
  11.                 list.add("bdkg");
  12.                 list.add("ag");
  13.                 Collections.sort(list);
  14.                 //int num = Collections.binarySearch(list,"sdf",new Comp());
  15.                 int num=halfSearch(list,"sdf");
  16.                 sop(list);
  17.                 sop(num);
  18.         }
  19.         public static void sop(Object obj)
  20.         {
  21.                 System.out.println(obj);
  22.         }
  23.         public static int  halfSearch(List<String> list,String key)//实现集合中的折半查找
  24.         {
  25.                 int max,min,mid;
  26.                 max=list.size()-1;//集合中的最大角标
  27.                 min=0;//集合中的最小角标
  28.                
  29.                 while(min<=max)//for( ;min<=max; )
  30.                 {
  31.                         mid=(max+min)/2;//中间角标
  32.                         String str=list.get(mid);//获取中间角标的元素
  33.                         int num=str.compareTo(key);//将中间角标的元素和关键字进行比较,返回一个整型值,大于0,中间角标大,小于0,key大。
  34.                         if(num>0)
  35.                                 max=mid-1;
  36.                         else if(num<0)
  37.                                 min=mid+1;
复制代码




3 个回复

倒序浏览
你是不是没复制完整?
回复 使用道具 举报
看不懂啊!!!!!!!!!!!!!!!!!
回复 使用道具 举报
支离疏者 发表于 2015-5-4 21:52
你是不是没复制完整?

谢谢提醒哈。。后面竟然没有粘贴上。。后面代码补上:
  1. if(num>0)
  2.                                 max=mid-1;
  3.                         else if(num<0)
  4.                                 min=mid+1;
  5.                         return mid;
  6.                 }
  7.                 return -1;
  8.         }
  9. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马