收藏 分享(赏)

经典!自己找的Java相关资料.doc

上传人:gnk289057 文档编号:7407975 上传时间:2019-05-16 格式:DOC 页数:7 大小:53.50KB
下载 相关 举报
经典!自己找的Java相关资料.doc_第1页
第1页 / 共7页
经典!自己找的Java相关资料.doc_第2页
第2页 / 共7页
经典!自己找的Java相关资料.doc_第3页
第3页 / 共7页
经典!自己找的Java相关资料.doc_第4页
第4页 / 共7页
经典!自己找的Java相关资料.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、java 的 System.currentTimeMillis()和 System.nanoTime()有什么区别JDK1.5之后 java 中的计时给出了更精确的方法:System.nanoTime() ,输出的精度是纳秒级别,这个给一些性能测试提供了更准确的参考。但是这个方法有个需要注意的地方,不能用来计算今天是哪一天看到这个方法不由得会想起 System.currentTime(),这个方法,它的精度是毫秒,返回值是从1970.1.1的零点开始到当前时间的毫秒数,理论上这个可以用来算当前的时间,而且可以用这个值来构造一个 Date 对象。但是 System.nanoTime()却是不同,

2、代码注释上有这么一句: The value returned represents nanoseconds since some fixed but arbitrary time (perhaps in the future, so values may be negative).这个返回值是一个从确定的值算起的,但是这个值是任意的,可能是一个未来的时间,所以返回值有可能是负数。 (我的英语很蹩脚,意思应该能明白吧)所以说这个 System.nanoTime()方法只能用来计时,例如:long s = System.nanoTime();System.out.println(System.na

3、noTime() - s);二分查找算法 java 实现今天看了一下 JDK 里面的二分法是实现,觉得有点小问题。二分法的实现有多种今天就给大家分享两种。一种是递归方式的,一种是非递归方式的。先来看看一些基础的东西。1、算法概念。二分查找算法也称为折半搜索、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。请注意这种算法是建立在有序数组基础上的。2、算法思想。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这

4、种搜索算法每一次比较都使搜索范围缩小一半。3、实现思路。找出位于数组中间的值,并存放在一个变量中(为了下面的说明,变量暂时命名为 temp) ;需要找到的 key 和 temp 进行比较;如果 key 值大于 temp,则把数组中间位置作为下一次计算的起点;重复 。如果 key 值小于 temp,则把数组中间位置作为下一次计算的终点;重复 。如果 key 值等于 temp,则返回数组下标,完成查找。4、实现代码。/* * description : 二分查找。* autor kwzhang* modify :2012-6-29* param * param array 需要查找的有序数组* p

5、aram from 起始下标* param to 终止下标* param key 需要查找的关键字* return * throws Exception*/public static int binarySearch(E array, int from, int to, E key) throws Exception if (from 1) + (to 1); / 右移即除2E temp = arraymiddle;if (pareTo(key) 0) to = middle - 1; else if (pareTo(key) 1;int midVal = amid;if (midVal ke

6、y)high = mid - 1;elsereturn mid; / key foundreturn -(low + 1); / key not found.怎样用下面的代码实现下面(1)和(2) 。求大家帮我补充完整。(1)在程序中为数组赋值并写入待搜索元素,输出搜索结果;(2)通过键盘为数组赋值并输入待搜索元素,输出搜索结果;public static int binarySearch(int a, int x, int n)int left = 0; int right = n - 1;while (left amiddle) left = middle + 1;else right =

7、 middle - 1;return -1; /由小到大排序public static int sort(int a)for(int i=0;iaj+1)int temp = aj;aj = aj+1;aj+1 = temp;return a;/回答第一题public static int search1()/程序定义的数组int b = 2,1,4,8,6,7,0;for(int a:b)System.out.println(a);/排序b = sort(b);for(int a:b)System.out.println(a);return binarySearch(b,7,b.length

8、);/回答第二题public static int search2()Scanner sc = new Scanner(System.in);/输入数组个数System.out.println(“请输入数组元素的个数:“);int idex = sc.nextInt();/生成数组int b = new intidex;/输入元素System.out.println(“请输入元素:“);for(int i=0;i= datamiddleIndex)start = middleIndex + 1;elseend = middleIndex - 1;return -1;/* 顺序搜索算法实现* p

9、aram data 数据集合* param target 搜索的数据* return 返回找到的数据的位置,返回-1表示没有找到。*/public static int orderFind(long data, long target)for(int k = 0;kdata.length;k+)if(target=datak)return k;return -1;运行测试代码,执行结果如下:inary search position:4980002binary search time:19204order search position:4980002order search time:31723602

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报