顺序查找与二分查找时间复杂度的比较
程序员文章站
2022-03-14 23:16:52
...
- 注意要点:通过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;
}
}
}
}
运行结果:
55ms
0ms
下一篇: 几种排序和二分查找算法