1 / 22
文档名称:

Java笔试之编程题库.doc

格式:doc   大小:61KB   页数:22
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Java笔试之编程题库.doc

上传人:xunlai783 2019/5/25 文件大小:61 KB

下载得到文件列表

Java笔试之编程题库.doc

相关文档

文档介绍

文档介绍::二分搜索算法解答:lassSearchTest{/**被搜索数据的大小*/privatestaticfinalintsize=5000000;publicstaticvoidmain(String[]args){long[]data=newlong[size];//添加测试数据for(intk=0;k<;k++){data[k]=k;}//要查找的数据longtarget=4970002;binaryFindTest(data,target);}/***二分搜索算法实现*****@paramdata*数据集合****@paramtarget*搜索的数据****@return返回找到的数据的位置,返回-1表示没有找到。*/publicstaticintbinaryFind(long[]data,longtarget){intstart=0;intend=–1;while(start<=end){intmiddleIndex=(start+end)/2;if(target==data[middleIndex]){returnmiddleIndex;}if(target>=data[middleIndex]){start=middleIndex+1;}else{end=middleIndex–1;}}return-1;}/***二分搜索测试*****@paramdata*数据集合****@paramtarget*搜索的数据*/publicstaticvoidbinaryFindTest(long[]data,longtarget){longstart=();intresult=binaryFind(data,target);longend=();(“binarysearchposition:”+result);(“binarysearchtime:”+(end–start));}}:线程A向队列Q中不停写入数据,线程B从队列Q中不停读取数据(只要Q中有数据)。解答:接口中有两个一个是向队列中写push方法一个是从队列中读。publicinterfaceStackInterface{publicvoidpush(intn);publicint[]pop();}上边接口的实现类。lassSafeStackimplementsStackInterface{privateinttop=0;privateint[]values=newint[10];privatebooleandataAvailable=false;publicvoidpush(intn){synchronized(this){while(dataAvailable)//1{try{wait();}catch(InterruptedExceptione){//忽略//2}}values[top]=n;(“压入数字”+n+“步骤1完成”);top++;dataAvailable=true;notifyAll();(“压入数字完成”);}}publicint[]pop(){synchronized(this){while(!dataAvailable)//3{try{wait();}catch(InterruptedExceptione){//忽略//4}}(“弹出”);top–;int[]test={values[top],top};dataAvailable=false;//唤醒正在等待压入数据的线程notifyAll();returntest;}}}lassPopThreadimplementsRunnable{privateStackInterfaces;publicPopThread(StackInterfaces){=s;}publicvoidrun(){while(true){(“->”+()[0]+“<-”);try{(100);}catch(InterruptedExceptione){}}}}lassPushThreadimplementsRunnable{privateStackInterfaces;publicPushThread(StackInterfaces){=s;}publicvoidrun(){inti=0;while(true){=newjava.