二分法查找和原始算法查找效率对比
来源:互联网 发布:淘宝网秒杀购物 编辑:程序博客网 时间:2024/06/05 03:43
直接上代码:
public class AppTest {static int length = 700000000;static int[] array = new int[length];static {for (int i = 0; i < length; i++) {array[i] = i;}}public static void main(String[] args) {for (int i = 0; i < 10; i++) {int target = (int) (Math.random() * length * 2);long start_f1 = System.currentTimeMillis();int index_f1 = findIndex(array, target);long end_f1 = System.currentTimeMillis();long time_f1 = end_f1 - start_f1;long start_f2 = System.currentTimeMillis();int index_f2 = findIndexByFor(array, target);long end_f2 = System.currentTimeMillis();long time_f2 = end_f2 - start_f2;System.out.println("目标数据:" + target + "二分法耗时:" + time_f1+ "二分法结果:" + index_f1 + "普通方法耗时:" + time_f2+ "普通方法结果:" + index_f2);}}public static int findIndex(int[] arr, int target) {return findIndex(arr, 0, arr.length, target);}public static int findIndex(int[] arr, int start, int end, int target) {int middle = (start + end) / 2;if (target == arr[middle]) {return -1;} else if (start > end || target < arr[0]|| target > arr[arr.length - 1]) {return -1;} else if (target < arr[middle]) {return findIndex(arr, start, middle - 1, target);} else if (target > arr[middle]) {return findIndex(arr, middle + 1, end, target);}return -1;}public static int findIndexByFor(int[] arr, int target) {int index = 0;for (int i : arr) {if (i == target) {return index;}index++;}return -1;}}
查找结果:
总结:总结过我们可以看出,二分法查找几乎是不耗时,所以方法是很重要的
阅读全文
0 0
- 二分法查找和原始算法查找效率对比
- 查找算法 - 二分法查找
- 查找算法:二分法查找
- 查找算法之二分法查找
- C++ 二分法查找算法
- C++二分法查找算法
- 算法:二分法查找
- 算法--二分法查找
- 【基础算法】二分法查找
- 算法-二分法查找数据
- 算法之二分法查找
- 二分法查找算法
- Java 二分法查找算法
- 算法学习--二分法查找
- 二分法查找算法
- [Algorithm]二分法查找算法
- 查找算法--二分法
- 二分法查找的算法
- JAVA面试题
- SqlServer数据库Recovery Pending
- python flask框架(表单挂库综合实现)
- Windows系统ORACLE修改字符集
- iOS开发中多线程的应用
- 二分法查找和原始算法查找效率对比
- jmeter知识点
- HDU 1856 More is better(简单并查集) 【最大并查集人数模板】
- iOS的沙盒路径
- Spring学习(一)概述
- camera摄像原理之一:光感应
- Android流行框架+网络框架
- 《Linux内核设计与实现》读书笔记(十四)- 块I/O层
- shell编程的一些注意事项