import java.util.Arrays;

 public class Solution
 {
     public static void main(String[] args)
     {
         int[] array1 = new int[10000];
         int[] array2 = new int[10000];

         for(int i = 0; i < 10000; i++)
         {
             array1[i] = (int)(Math.random() * 100);
             array2[i] = (int)(Math.random() * 100);
         }

         int sign1 = (int)(Math.random() * 100);
         int sign2 = (int)(Math.random() * 100);

         System.out.println("Array1 run time: " + linearRunTime(array1, sign1));
         System.out.println("Array2 run time: " + binaryRunTime(array2, sign2));
     }

     public static long linearRunTime(int[] array, int number)
     {
         long startTime = System.currentTimeMillis();
         linearSearch(array, number);
         long endTime = System.currentTimeMillis();
         long executionTime = endTime - startTime;
         return executionTime;
     }

     public static long binaryRunTime(int[] array, int number)
     {
         Arrays.sort(array);
         long startTime = System.currentTimeMillis();
         binarySearch(array, number);
         long endTime = System.currentTimeMillis();
         long executionTime = endTime - startTime;
         return executionTime;
     }

     public static void linearSearch(int[] array, int number)
     {
         for(int i = 0; i < array.length; i++)
             if(number == array[i])
                 return;
     }

     public static void binarySearch(int[] array, int number)
     { binarySearch(array, number, 0, array.length - 1); }

     public static void binarySearch(int[] array, int number, int low, int high)
     {
         if(low < high)
             return;
         int mid = (low + high) / 2;
         if(number < array[mid])
             binarySearch(array, number, low, mid);
         else if(number > array[mid])
             binarySearch(array, number, mid + 1, high);
         else if(number == array[mid])
             return;
     }
 }

HW6.16的更多相关文章

  1. javaweb基础(16)_jsp指令

    一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分. 在JSP 2.0规范中共定义了三个指令: pa ...

  2. 在Ubuntu 16.10安装mysql workbench报未安装软件包 libpng12-0错误

    1.安装mysql workbench,提示未安装软件包 libpng12-0 下载了MySQL Workbench 6.3.8   在安装的时候报错: -1ubu1604-amd64.deb 提示: ...

  3. Ubuntu 16.10 安装KolourPaint 4画图工具

    KolourPaint 4画图工具简单实用,可以绘画.视频处理和图标编辑: • 绘画:绘制图表和“手绘” • 视频处理:编辑截图和照片;应用特效 • 图标编辑:绘画剪贴和标识透明化 1.在Ubuntu ...

  4. 真正的汉化-PowerDesigner 16.5 汉化

    一.背景 经常使用PowerDesigner,之前使用15版本,后来16出来后,就一直在使用16,不过一直是英文.一些同事对使用英文版总显示有些吃力. 遍寻百度.必应,都没有找到真正的针对版本16的汉 ...

  5. Win7安装MySQL-5.7.16过程

    1.在C盘新建MYSQL文件夹:2.将mysql-5.7.16-winx64拷贝到C:\MYSQL文件夹下,更名为mysql-5.7.16:3.在mysql-5.7.16目录下,建my.ini文件,内 ...

  6. 使用 GCC 和 GNU Binutils 编写能在 x86 实模式运行的 16 位代码

    不可否认,这次的标题有点长.之所以把标题写得这么详细,主要是为了搜索引擎能够准确地把确实需要了解 GCC 生成 16 位实模式代码方法的朋友带到我的博客.先说一下背景,编写能在 x86 实模式下运行的 ...

  7. 企业IT管理员IE11升级指南【16】—— 使用Compat Inspector快速定位IE兼容性问题

    企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...

  8. ABP(现代ASP.NET样板开发框架)系列之16、ABP应用层——数据传输对象(DTOs)

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之16.ABP应用层——数据传输对象(DTOs) ABP是“ASP.NET Boilerplate Project ...

  9. 安装MYSQL详细教程 版本:mysql-installer-community-5.7.16.0 免安装版本和安装版本出现错误的解决

    一.版本的选择 之前安装的Mysql,现在才来总结,好像有点晚,后台换系统了,现在从新装上Mysql,感觉好多坑,我是来踩坑,大家看到坑就别跳了,这样可以省点安装时间,这个折腾了两天,安装了好多个版本 ...

随机推荐

  1. Google 面经 09/26

    http://www.mitbbs.com/article_t/JobHunting/32539885.html 狗家面经发信站: BBS 未名空间站 (Thu Sep 26 01:20:54 201 ...

  2. HDU 1757 A Simple Math Problem(矩阵快速幂)

    题目链接 题意 :给你m和k, 让你求f(k)%m.如果k<10,f(k) = k,否则 f(k) = a0 * f(k-1) + a1 * f(k-2) + a2 * f(k-3) + …… ...

  3. Hibernate逍遥游记-第2章-使用hibernate.properties

    1. package mypack; import org.hibernate.*; import org.hibernate.cfg.Configuration; import java.util. ...

  4. Android:Resources资源文件

    Android Resoureces是res目录下的那些目录和文件,常用的有: res/drawable/ 存放图片资源,类型有: 相关使用: Android:res之shape制作圆角 Androi ...

  5. 201. Bitwise AND of Numbers Range

    题目: Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all num ...

  6. 理解TCP/IP协议

    TCP/IP协议是Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议. 单从TCP/IP协议这个名称看,好多人误 ...

  7. meta的Name为apple-itunes-app 是什么意思

    例如:<meta name="apple-itunes-app" content="app-id=432274380" /> 解答:这个标签是告诉i ...

  8. 【HDOJ】4775 Infinite Go

    其实是一道模拟题,并查集用来优化.还可以的一道题目. /* 4775 */ #include <iostream> #include <sstream> #include &l ...

  9. Hibernate映射之实体映射<转载>

    实体类与数据库之间存在某种映射关系,Hibernate依据这种映射关系完成数据的存取,因此映射关系的配置在Hibernate中是最关键的.Hibernate支持xml配置文件与@注解配置两种方式.xm ...

  10. C#中哈希表与List的比较

    简单概念 在c#中,List是顺序线性表(非链表),用一组地址连续的存储单元依次存储数据元素的线性结构. 哈希表也叫散列表,是一种通过把关键码值映射到表中一个位置来访问记录的数据结构.c#中的哈希表有 ...