Redian新闻
>
请构造个数据结构,满足:
avatar
请构造个数据结构,满足:# Programming - 葵花宝典
h*o
1
复杂度 of access: O(1)
复杂度 of insert: O(1)
复杂度 of delete: O(1)
复杂度 of traverse: = O(n)
不是 hash. 因为 hash 的复杂度 of traverse: >= O(n)
avatar
T*i
2
hash with link-list

【在 h**o 的大作中提到】
: 复杂度 of access: O(1)
: 复杂度 of insert: O(1)
: 复杂度 of delete: O(1)
: 复杂度 of traverse: = O(n)
: 不是 hash. 因为 hash 的复杂度 of traverse: >= O(n)

avatar
k*f
3
http://en.wikipedia.org/wiki/Heap_(data_structure)

【在 h**o 的大作中提到】
: 复杂度 of access: O(1)
: 复杂度 of insert: O(1)
: 复杂度 of delete: O(1)
: 复杂度 of traverse: = O(n)
: 不是 hash. 因为 hash 的复杂度 of traverse: >= O(n)

avatar
q*n
4
a simple lookup table.

【在 h**o 的大作中提到】
: 复杂度 of access: O(1)
: 复杂度 of insert: O(1)
: 复杂度 of delete: O(1)
: 复杂度 of traverse: = O(n)
: 不是 hash. 因为 hash 的复杂度 of traverse: >= O(n)

avatar
c*t
5

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Not really. Hash 的 ideal size 只是 n 的两倍左右。
还是在 O (n) 之内的。

【在 h**o 的大作中提到】
: 复杂度 of access: O(1)
: 复杂度 of insert: O(1)
: 复杂度 of delete: O(1)
: 复杂度 of traverse: = O(n)
: 不是 hash. 因为 hash 的复杂度 of traverse: >= O(n)

avatar
b*n
6
人家就要n。

【在 c*****t 的大作中提到】
:
: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: Not really. Hash 的 ideal size 只是 n 的两倍左右。
: 还是在 O (n) 之内的。

avatar
b*n
7
pool

【在 h**o 的大作中提到】
: 复杂度 of access: O(1)
: 复杂度 of insert: O(1)
: 复杂度 of delete: O(1)
: 复杂度 of traverse: = O(n)
: 不是 hash. 因为 hash 的复杂度 of traverse: >= O(n)

avatar
h*o
8
谢谢大家恢复。
不知道其他答案对不对。我得学习一下。
不过hash+link list 肯定是个正确答案。
但我不懂,这个hash+link list 是指chaining hash 吗?
那最起码复杂度 of access() 就不是1啊。
特别如果chain很长,根list 没什么区别。

【在 b******n 的大作中提到】
: pool
avatar
t*t
9

no.

【在 h**o 的大作中提到】
: 谢谢大家恢复。
: 不知道其他答案对不对。我得学习一下。
: 不过hash+link list 肯定是个正确答案。
: 但我不懂,这个hash+link list 是指chaining hash 吗?
: 那最起码复杂度 of access() 就不是1啊。
: 特别如果chain很长,根list 没什么区别。

avatar
S*n
10

access还是用hash的hash function,所以还是O(1)
traverse用list,所以是O(n).

【在 h**o 的大作中提到】
: 谢谢大家恢复。
: 不知道其他答案对不对。我得学习一下。
: 不过hash+link list 肯定是个正确答案。
: 但我不懂,这个hash+link list 是指chaining hash 吗?
: 那最起码复杂度 of access() 就不是1啊。
: 特别如果chain很长,根list 没什么区别。

avatar
h*o
11
你是说除hash table 外 另用一个link list吗?
那 insert 和 delete 就 不是O(1)了, 因为link list 里的内容也要变。
可能你是说把 hash (key, value) 的结构变成hash (key, value, *prev_node,*next
_node)吧?

【在 S*****n 的大作中提到】
:
: access还是用hash的hash function,所以还是O(1)
: traverse用list,所以是O(n).

avatar
t*t
12
那请问,linked list的insert和delete是什么复杂度?

next

【在 h**o 的大作中提到】
: 你是说除hash table 外 另用一个link list吗?
: 那 insert 和 delete 就 不是O(1)了, 因为link list 里的内容也要变。
: 可能你是说把 hash (key, value) 的结构变成hash (key, value, *prev_node,*next
: _node)吧?

avatar
h*o
13
你是说O(1)啊。
可是难道不是先找到位置再delete/insert吗?
不好意思我太笨了。

【在 t****t 的大作中提到】
: 那请问,linked list的insert和delete是什么复杂度?
:
: next

avatar
s*u
14
查找是hash的,java里面有个LinkedHashSet
qishi meiyou shenme yong

【在 h**o 的大作中提到】
: 你是说O(1)啊。
: 可是难道不是先找到位置再delete/insert吗?
: 不好意思我太笨了。

avatar
r*y
15
hehe,确实是先查找在insert/delete
不过hashtable好的话,linked list不长,远小于n
所以看做是o(1)

【在 h**o 的大作中提到】
: 你是说O(1)啊。
: 可是难道不是先找到位置再delete/insert吗?
: 不好意思我太笨了。

avatar
s*u
16
不是不长的意思... 是hash的一个cell -> 到linked list

【在 r*******y 的大作中提到】
: hehe,确实是先查找在insert/delete
: 不过hashtable好的话,linked list不长,远小于n
: 所以看做是o(1)

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