• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
乐碎碎
程序媛想的事儿
博客园    首页    新随笔    联系   管理    订阅  订阅
小算法

问题描述:

有两组随机生成的(0~99999)Int32数据A和B,将A按顺序判断在B中是否存在并记录在Boolean型的C中

 

 1 public static void main(String[] args)
 2     {
 3         //B数组:[5,2,4,1]
 4         
 5         Random rand = new Random();
 6         int maxValue = 120000;//假定A和B 的最大值
 7         int length = 70000;//a,b 的长度
 8         int [] a = new int[length];
 9         int [] b = new int[length];
10         boolean[] c= new boolean[length];
11         boolean[] temp = new boolean[maxValue];
12         //随机初始化啊a,b数组
13         for(int i = 0;i<length;i++){
14             a[i] = rand.nextInt(maxValue);
15             b[i] = rand.nextInt(maxValue);
16         }
17         long t1 = System.currentTimeMillis();
18         //循环B,验证元素是否存在(循环B,将B中值作为a的下标,对应位置标记为true)
19         for (int item : b) {
20             temp[item] = true;
21         }
22         
23         for(int i = 0;i<a.length;i++){
24             if(temp[a[i]])
25                 c[i] = true;
26         }
27         long t2 = System.currentTimeMillis();
28         System.out.println(t2-t1);
29     }

 

不算初始化,5毫秒左右

 

 

---

参考:

一个从四秒到10毫秒,花了1年的算法问题?

 

posted on 2015-11-26 10:14  xingle0917  阅读(265)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3