Java折半查找的程序,输出结果总是错位,求教问题出在哪里? 这个输出的6,是7所在的下标吧?在有序数组a[]中查找m,应该返回m在a[]中的下标i才对嘛。不然查询m,然后直接告诉你查询到m,没啥意义了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我不知道你的问题在那里,不过程序输出的描述有误System.out.println("这个数字在" + comparisonCount + "的后面。");这里的comparisonCount应该是指查询的次数 根据程序,首先你的position是你找到数字所在数组位置的索引,而你变量comparisonCount准确的说是比较的次数,而根据你的本意,想输出的是lowerbound索引所对应的数字,即System.out.println("这个数字在" + array[lowerbound] + "的后面。");但是这样就存在一个问题,可能存在的情况是(lowerbound + upperbound)/2 也就是position,他的值等于lowerbound,例如lowerbound=4,upperbound=5,求出来的position=4。如果你想要这样的输出结果,可以这样修改:System.out.println("这个数字在" +(lowerbound==position?array[lowerbound-1]:array[lowerbound]) + "的后面。");希望能帮到你,第一次回答问题,哈哈 问一个关于序列化的问题? 听说jdk要收费了,不知道是不是真的!!! tomcat 5.5版javaBean应该放在哪个目录中? 求教关于正则表达式翻译问题 关于图像绘制问题 jframe中的两种事件处理方式有什么不一样吗? 要用java语言实现永无溢出的智能加法算数程序 请问各位大虾,JAVA与.NET有何区别? 如何在JPane中放图片?(在线等待) 数据结构 如何让避免center不会跟谁temp改变? Netty4 的UDP 服务器端和客户端
System.out.println("这个数字在" + comparisonCount + "的后面。");
这里的comparisonCount应该是指查询的次数
希望能帮到你,第一次回答问题,哈哈