1 import java.util.Arrays; 2 import java.util.Scanner; 3 /** 4 * @author 冰樱梦 5 * 时间:2018年下半年 6 * 题目:执行时间 7 * 8 */ 9 public class Exercise07_16 { 10 public static void main(String[] args){ 11 int[] list=new int[100000]; 12 for(int i=0;i<list.length;i++){ 13 list[i]=(int)(Math.random()*100000); 14 } 15 int key=(int) (Math.random()*100000); 16 long startTime=System.nanoTime(); 17 System.out.println(LinearSearch(list,key)); 18 long endTime=System.nanoTime(); 19 long executionTime=endTime-startTime; 20 System.out.println("时间为: "+executionTime); 21 22 Arrays.sort(list); 23 startTime=System.nanoTime(); 24 System.out.println(BinarySearch(list,key)); 25 endTime=System.nanoTime(); 26 executionTime=endTime-startTime; 27 System.out.println("时间为: "+executionTime); 28 29 } 30 public static int LinearSearch(int[] list,int key){ 31 for(int i=0;i<list.length;i++){ 32 if(key==list[i]){ 33 return i; 34 } 35 } 36 return -1; 37 } 38 public static int BinarySearch(int[] list,int key){ 39 int low=0; 40 int high=list.length-1; 41 while(high>=low){ 42 int mid=(low+high)/2; 43 if(key<list[mid]){ 44 high=mid-1; 45 } 46 else if(key==list[mid]){ 47 return mid; 48 } 49 else low=mid+1; 50 } 51 return -low-1; 52 } 53 }