数据结构问题,我想应该还有更巧妙的方法(40分)

  • 主题发起人 主题发起人 千中元
  • 开始时间 开始时间

千中元

Unregistered / Unconfirmed
GUEST, unregistred user!
一函数,收到某iP的客户端查询后返回结果存在TStringList.
比如StringList1对应了IPA的查询
StringList2对应了IPB的查询
StringList3又对应了IPA的查询。
保存近期内(比如一小时)的查询,以方便在结果中进行检索。
比如IPA能在近期IPA检索的结果中进行更精确的检索。
function getSearchList(SearchKey: String ;
userIP: String): TStringList;
我的方法比较笨,先听听大家有什么好意见
 
StringList1..n都是结果数据
这不就是数据库的索引的例子吗?
再建一级List:
IP StringList指针
搜索算法用操作系统最经典的几种换页算法,你到网上找找,都有源码
另起一个线程,来轮询
这是高效和稳定两者最平衡的方法,因为数据库和操作系统都使用这些算法
 
我还是听课吧,最近看高数,都没有时间看delphi了
 
感觉应该用哈希表.
 
哈希表会快很多,不过这跟你的应用有关,10000以下的数据我认为TStringList够用了,如
果检索不是过于频繁,或者检索需要放置在服务端的话。
 
如果查询量大,用TStringList内存分配都会有问题。
用数据库可能比较合适,查询也方便。
 
同意阿朱。典型的换页算法。开出一个缓冲区,根据命中率的高低,淘汰那些太旧的页。
具体的算法我不记得了。
 
最简单是保存个RECORDSET指针进来,别释放,呵呵。定期、定时,不过比较消耗资源。
不然就做临时表,也没什么麻烦的。
 
多人接受答案了。
 
后退
顶部