Chinaunix

标题: 快速查找算法 [打印本页]

作者: 断云易水    时间: 2013-05-21 10:00
标题: 快速查找算法
   动态接收数据,并根据数据中的关键数据进行整合,如何快速定位数据?当然不存在的数据也是要插入的......请推荐一下高效的算法......
作者: folklore    时间: 2013-05-21 10:13
heap
作者: fenghw8088    时间: 2013-05-21 10:40
构造散列表
作者: 断云易水    时间: 2013-05-21 10:51
回复 3# fenghw8088 关键字会比较多,散列表冲突是不是会影响效率啊,数据量比较大的


   
作者: hellioncu    时间: 2013-05-21 10:59
高效的算法要针对数据的具体特点才有可能,你这泛泛的需求,让人怎么推荐呢
作者: bruceteen    时间: 2013-05-21 11:07
hellioncu 发表于 2013-05-21 10:59
高效的算法要针对数据的具体特点才有可能,你这泛泛的需求,让人怎么推荐呢

顶一下(抱歉,您的帖子小于 10 个字符的限制)
作者: 断云易水    时间: 2013-05-21 11:23
回复 5# hellioncu 就像一个动态路由查找算法,但是查找的字段包含五元组,所以对查找的速率要求比较高,而且没找到的话,也要插入数据。。。


   
作者: fender0107401    时间: 2013-05-21 11:28
不明觉厉啊,这lz说的是啥啊。
作者: lxyscls    时间: 2013-05-21 13:46
基数树{:3_189:}
作者: 断云易水    时间: 2013-05-21 14:25
回复 8# fender0107401 就像路由器查路由表一样,存在的话进行更新,不存在的话插入数据,不过不像路由表只需匹配目的IP,这个需要匹配的字段比较多,如何比较快得查找和插入数据呢?或者说路由器是用什么思想实现的呢?


   
作者: fender0107401    时间: 2013-05-21 15:10
Try hash table of get some DBMS.
作者: fenghw8088    时间: 2013-05-21 15:16
其实和实现一个通用的聚合计算差不多,如select xxx from xxx group by x,y,z ...
作者: yulihua49    时间: 2013-06-14 17:47
本帖最后由 yulihua49 于 2013-06-14 17:48 编辑
断云易水 发表于 2013-05-21 14:25
回复 8# fender0107401 就像路由器查路由表一样,存在的话进行更新,不存在的话插入数据,不过不像路由表只 ...

我们用AVL树。效率挺高的。
并且实现了:select xxx from xxx group by x,y,z  

作者: yulihua49    时间: 2013-06-14 19:56
断云易水 发表于 2013-05-21 10:00
动态接收数据,并根据数据中的关键数据进行整合,如何快速定位数据?当然不存在的数据也是要插入的..... ...

这个你也可以参考一下:
http://bbs.chinaunix.net/thread-4083504-1-1.html
作者: 546588532    时间: 2013-06-15 13:13
感觉你可以去看看程序设计艺术 . 那里用了一大本书,专门讲查找和排序的.
作者: a393483403    时间: 2013-06-17 13:38
做个链表吧,如果大于前面的,小于后面的,就直接插入,head 做个处理就好了 。怎么样?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2