Redian新闻
>
请教双键的动态结构用什么数据结构比较好?
avatar
请教双键的动态结构用什么数据结构比较好?# Programming - 葵花宝典
g*s
1
比如一个记录,id和name都是unique的,都可以用来做key。现在有这样一组记录,插
入/删除/查询的操作很频繁,而且可能用name也可能用id作key。用什么数据结构比较
好?
最简单的想法是两个balanced BST,一个用id作key,一个用name,但这样等于时间空
间都double了,虽然复杂度不变。
两个hash table的话也是同样的问题。另外因为记录是动态变化的,hash table的size
也不太好定。
有没有dual-key binary search tree之类的数据结构呢?
avatar
f*y
2
要我看单独设置一个id和name的lookup表,加一个按照id或者name的树

size

【在 g*********s 的大作中提到】
: 比如一个记录,id和name都是unique的,都可以用来做key。现在有这样一组记录,插
: 入/删除/查询的操作很频繁,而且可能用name也可能用id作key。用什么数据结构比较
: 好?
: 最简单的想法是两个balanced BST,一个用id作key,一个用name,但这样等于时间空
: 间都double了,虽然复杂度不变。
: 两个hash table的话也是同样的问题。另外因为记录是动态变化的,hash table的size
: 也不太好定。
: 有没有dual-key binary search tree之类的数据结构呢?

avatar
g*g
3
简单的数据库就很好用,做两个索引就得。
其实就是两个hashtable. 绝大多数情况下,
不应该考虑去实现自己的数据结构,这本身
就不符合OO的思想。
在一个量级上,应该先问的是性能够了吗,够了
就是够了。

size

【在 g*********s 的大作中提到】
: 比如一个记录,id和name都是unique的,都可以用来做key。现在有这样一组记录,插
: 入/删除/查询的操作很频繁,而且可能用name也可能用id作key。用什么数据结构比较
: 好?
: 最简单的想法是两个balanced BST,一个用id作key,一个用name,但这样等于时间空
: 间都double了,虽然复杂度不变。
: 两个hash table的话也是同样的问题。另外因为记录是动态变化的,hash table的size
: 也不太好定。
: 有没有dual-key binary search tree之类的数据结构呢?

avatar
f*y
4
他可能是作业题

【在 g*****g 的大作中提到】
: 简单的数据库就很好用,做两个索引就得。
: 其实就是两个hashtable. 绝大多数情况下,
: 不应该考虑去实现自己的数据结构,这本身
: 就不符合OO的思想。
: 在一个量级上,应该先问的是性能够了吗,够了
: 就是够了。
:
: size

avatar
s*e
5
空间怎么会double呢?你只需要为数据分配一次空间,两个hash table, 或者BST都只
需要记录数据的地址就可以了。
查找还是一样的。唯一不同的就是插入和删除需要做两次。

size

【在 g*********s 的大作中提到】
: 比如一个记录,id和name都是unique的,都可以用来做key。现在有这样一组记录,插
: 入/删除/查询的操作很频繁,而且可能用name也可能用id作key。用什么数据结构比较
: 好?
: 最简单的想法是两个balanced BST,一个用id作key,一个用name,但这样等于时间空
: 间都double了,虽然复杂度不变。
: 两个hash table的话也是同样的问题。另外因为记录是动态变化的,hash table的size
: 也不太好定。
: 有没有dual-key binary search tree之类的数据结构呢?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。