注意要点:通过System.currentTimeMills();来获取当前时间,来计算该算法运行运算时间顺序查找的时间复杂度为O(n)二分查找的时间复杂度为O(log(n))但两者的运行时间的结果却千差万别,可知当计算量很大的情况下算法优化的必要性。import java.util.Arrays;public class Main {public static int a[] = new int[10000*10000];public static void main(String[] args) {for(int i = 0; i < 10000* 10000; i ++) {a[i] = i + 1;}int target = 10000 * 10000;//计算顺序查找所用时间long start = System.currentTimeMillis();find(target);long end = System.currentTimeMillis();System.out.println(end - start + "ms");//计算二分查找所用时间 start = System.currentTimeMillis();Arrays.binarySearch(a, target);end = System.currentTimeMillis();System.out.println(end - start + "ms");}private static void find(int target) {for(int i = 0; i < 10000 * 10000; i ++) {if(a[i] == target) {return;}}}}
运行结果:
55ms0ms