永发信息网

今天听到一个词,叫折中查询(java中),请教下折中查询是什么意思,能举例说明下最好

答案:2  悬赏:30  手机版
解决时间 2021-03-18 18:40
今天听到一个词,叫折中查询(java中),请教下折中查询是什么意思,能举例说明下最好
最佳答案
折中查询也叫折半查询,是一种查询方法,折中查询方法针对的是已经排好序的数列来说!
例如:有一组有序数列:3,6,8,10,20,23,28
现在让你用算法实现看看次数列中有没有15.。一般的方法是将数列中的数一个一个的跟15比较,直到结尾,这样要比较7次才能得出结果!
折中查询是这样的:
这是一个已经排好序的数列,所以找到这个数列中间位置的那个数,这里是10,用10跟15比较,发现要找的15比10大,所以10前面的数你就不用管了,只去10后面的数里面找,只剩:20,23,28了,看看有没有15,在10后面的数里,再找当中的那个数,这里是23,23要比15大,所以在去10到23之间里面找,15跟23里面已经没有数了,所以这个数列里面没有15.这种方法得出没有15的结果只做了2次比较,省事多了!
全部回答
public class testsort> { private o[] data; public testsort(o[] data) { this.data = data; } public int sortbyreturn(int low, int high, o value) { int mid = (low+high)/2; if(value.compareto(data[mid])<0) { high = mid -1; return sortbyreturn(low,high,value); }else if(value.compareto(data[mid])>0) { low = mid + 1; return sortbyreturn(low,high,value); }else { return mid; } } public int sortbywhile(o value) { if(value==null) { return 0; } int low = 0; int high = data.length-1; int mid ; while(low<=high) { mid = (high+low)/2; if(value.compareto(data[mid])<0) { high = mid-1; }else if(value.compareto(data[mid])>0) { low = mid+1; }else if(value.compareto(data[mid])==0) { return mid; } } return -1; } public static void main(string[] args) { integer data[] = {1,2,5,7,9,33,43,45,66,78,93}; testsort ts = new testsort(data); system.out.println("sort by while:"+ts.sortbywhile(5)); system.out.println("sort2 by while:"+ts.sortbyreturn(0,data.length-1,33)); } }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我的充电宝的电路板烧了,可以修吗?
如何测电流
广州佛山苹果手机维修点在哪里
有谁懂在国税备案合同这方面的事???
我们想把女儿的户口落到天津应该怎么办
我有一个红灯牌711-3老式收音机,大概什么价
在网上查的违章罚单上显示的日期都是违章当天
刚预定完一款手办就显示已下架,什么情况
淘浪足浴地址在什么地方,想过去办事
我搬迁新家,回礼茶l杯上应该刻什么文字
黑户替银行背债会够成犯罪吗
地铁钟南街首末站有没有免费停车场
泰迪刚生完孩子下次啥时可以交配
梦见鱼从高处往水里跳
地地道排档地址在什么地方,想过去办事
推荐资讯
狗狗生的宝宝是不是一个宝宝一个胎盘
怎么知道对方微信在线,DD有这个显示
墨墨背单词总是初始化失败
默写《荀子·劝学》从“积土成山”到“金石可
梦见自己在饭店工作朋友要叫我出去租房子
在地铁里你的鞋被挤丢了你会怎么办?
青山羊的养殖密度
梦见自己的母亲死了,什么预兆?
电影《我是谁2015》高清完整下载地址
森海塞尔hd518和hd360pro哪个好?
天天平价我想知道这个在什么地方
迈入初中第一步 演讲稿
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?