问题描述
客户端从服务器读取数据,是要花费一定时间的。客户端发送价格1.1给服务器猴返回客户端的数据如下格式:价格排名1.11001.2100..........2.0100客户端发送价格2.1给服务器猴返回客户端的数据如下格式:2.1992.2992.398..........3.096价格是递增的,排名也是递增的,也可能与以前相同。价格的范围是1-100如何以最快的方法找到客户端要的排名对应的最低价格。如:需要找第2名,最低价格
解决方案
解决方案二:
二分查找
解决方案三:
二分算法想过,不过这个比一般的都难。最好有具体过程
解决方案四:
怎么没人顶起来,自己顶
解决方案五:
觉得算法不算难吧就一个排序不知道可否用HashMap来存数据
解决方案六:
问题是这个是每次客户端请求服务器,服务器才会给客户端传一段数据,这个过程是要时间的。
解决方案七:
服务器端返回的数据是有序的吗?如果有序的就一个循环遍历一下第N-1次rs(i)>rs(i-1)的时候rs(i)就是第N小的呗例如11235这个i从1开始53211这个i从length开始
解决方案八:
学习0...
解决方案九:
1.服务器端数据存储的方式是什么?数据库?文件?还是已经读取到内存中(Collection?Array?Hash?是否已经排序?)存储方式明确了才知道用哪种方式更合适。2.如果是排序了的Collection或数组,保可使用Collections提供的方法进行二分查找,二分查找的速度已经够快了,Hash在这里不太合适。3.数组是没有排序的,先排序一下。4.如果是在文件里,具体问题具体决定,数据量的大小起关键作用。5.数据库的话,直接用SQL语句查询出结果。具体问题,具体分析。
解决方案十:
该回复于2010-10-09 14:26:11被版主删除
解决方案十一:
引用8楼inhibitory的回复:
1.服务器端数据存储的方式是什么?数据库?文件?还是已经读取到内存中(Collection?Array?Hash?是否已经排序?)存储方式明确了才知道用哪种方式更合适。2.如果是排序了的Collection或数组,保可使用Collections提供的方法进行二分查找,二分查找的速度已经够快了,Hash在这里不太合适。3.数组是没有排序的,先排序一下。4.如果是……
路过,学习!
解决方案十二:
顶一个。用数组?
解决方案十三:
说说存在什么地方,什么形式。放在数据库里不是事儿。
解决方案十四:
该回复于2010-12-07 13:24:50被版主删除
解决方案十五:
放到一个HashMap
其他方案:
没有看懂题意,能解释得一下不。。。
其他方案:
可能没描述清楚。这个题目没那么简单的。服务器每次返回的不是所有的数据,而是一部分数据。getDateFromServer(Stringprice){//服务器返回price从price+1之间的数据,注意price在服务器端的值为1到100,//这里返回的数据是[price+0.01][排名]}所以不可能把所有的数据全部取出来,只能通过计算,一次次的判断取哪个区间的值,才能最快的取回来。
其他方案:
可能没描述清楚。这个题目没那么简单的。服务器每次返回的不是所有的数据,而是一部分数据。getDateFromServer(Stringprice){//服务器返回price从price+1之间的数据,注意price在服务器端的值为1到100,//这里返回的数据是[price+0.01][排名]//比如price参数是1.0returnnewString[][]{{1.0100},{1.01100},..........2.0100}}所以不可能把所有的数据全部取出来,只能通过计算,一次次的判断取哪个区间的值,才能最快的取回来。
其他方案:
自己在顶
其他方案:
输入参数到底是价格还是排名?
其他方案:
该回复于2010-10-11 09:31:11被版主删除
其他方案:
学习..
其他方案:
求解!
其他方案:
输入参数是价格
其他方案:
顶起来
其他方案:
不用那么麻烦,在数据库里面就可以直接完成检索比如存储的表叫Goods表,其中有两个字段一个是价格(price),一个是排名(ranking)SQL语句这么写:selectprice,rankingfromGoodswhereprice>=xorderbypriceASC,rankingdesc
x为传入的价格值!
其他方案:
如:需要找第2名,最低价格selectprice,rankingfromGoodswhereranking=2orderbypriceASC,rankingdesc
其他方案:
可以这么做,先猜测一个价格,例如5,获得一系列排名,查看需要的排名是否在这个范围之内,如果是,就在区间内二分查找之,否则确定是在5-10还是1-5,再猜测个价格,可以取中间值,相当于一个二分查找。注意,如果一个价格区间的所以排名都是需要的排名,则继续搜索更低的价格排名
其他方案:
该回复于2010-12-02 15:48:09被版主删除
其他方案:
面试题总是这么龌龊实际上增加个接口多简单。
其他方案:
学习··
其他方案:
经典中的经典