avatar
LinkedList 和 Array 比较# JobHunting - 待字闺中
B*4
1
一般都说,LinkedList 删除是O(1), Array删除是O(1)到O(n)。
但是,LinkedList 删除前不是要先定位到INDEX所在NODE吗,那已经是O(n)了呀?
avatar
x*a
2
移动。

【在 B********4 的大作中提到】
: 一般都说,LinkedList 删除是O(1), Array删除是O(1)到O(n)。
: 但是,LinkedList 删除前不是要先定位到INDEX所在NODE吗,那已经是O(n)了呀?

avatar
B*4
3
LinkedList 移动不是必须从头开始移动吗,所以 worst case:O(n).

【在 x**********a 的大作中提到】
: 移动。
avatar
s*i
4
单链,如果不给出previous ,的确是O(n)。
双链是O(1)

[发表自未名空间手机版 - m.mitbbs.com]

【在 B********4 的大作中提到】
: LinkedList 移动不是必须从头开始移动吗,所以 worst case:O(n).
avatar
B*4
5

双联你也得从头(或尾)一个个移过去,为啥是O(1)?
我理解双联LIST只是解决反向搜索问题。

【在 s*i 的大作中提到】
: 单链,如果不给出previous ,的确是O(n)。
: 双链是O(1)
:
: [发表自未名空间手机版 - m.mitbbs.com]

avatar
n*u
6

prev和next的两个node里的pointer改一下就行了。
array的好处是省内存。

【在 B********4 的大作中提到】
:
: 双联你也得从头(或尾)一个个移过去,为啥是O(1)?
: 我理解双联LIST只是解决反向搜索问题。

avatar
g*g
7
所以要具体例子具体分析,比如queue, stack就不是问题。

【在 B********4 的大作中提到】
: 一般都说,LinkedList 删除是O(1), Array删除是O(1)到O(n)。
: 但是,LinkedList 删除前不是要先定位到INDEX所在NODE吗,那已经是O(n)了呀?

avatar
h*9
8
我们通常说的删除只是delete 这个节点的操作 并不包括找到这个点。 对于list 只需
要改前后指针。 所以是o(1) 对于array 删除的操作是 删除这个节点 然后把后面的
所有节点前移。。。(或者把前面所有的节点后移) 这个前移或者后移的复杂度是o(n
)
avatar
B*4
9

需要改前后指针。 所以是o(1) 对于array 删除的操作是 删除这个节点 然后把后面
的所有节点前移。。。(或者把前面所有的节点后移) 这个前移或者后移的复杂度是o
(n).
这么解释就说的通。我的新问题是为啥并不包括找到这个点? 在Java里
LinkedList.remove(int index)
要实现这个方法需要两步,第一步找到这个节点,第二步修改前后节点的指针。

【在 h*******9 的大作中提到】
: 我们通常说的删除只是delete 这个节点的操作 并不包括找到这个点。 对于list 只需
: 要改前后指针。 所以是o(1) 对于array 删除的操作是 删除这个节点 然后把后面的
: 所有节点前移。。。(或者把前面所有的节点后移) 这个前移或者后移的复杂度是o(n
: )

avatar
s*r
10
难道面试的时候因为这个挂了?
删除只需要修改指针,所以复杂度是O(1). 你这个函数需要分别调 find 和 delete,
比一般的删除明显复杂啊。
[在 BornIn1974 (BornIn1974) 的大作中提到:]

:【 在 hewei8829 (hewei8829) 的大作中提到: 】
:...........
avatar
f*s
11
Find O(n) delete O(1) 这样清楚么?
avatar
B*4
12
暂时还没有挂,A家电面刚过。
话说现在是不是美国IT工作特好找呀?我都没有发简历,A家通过我的LinkedIn上简历
就找上我要电面。还说过两个月要来加拿大面试,难道美国本地都找不到人了?

【在 s*********r 的大作中提到】
: 难道面试的时候因为这个挂了?
: 删除只需要修改指针,所以复杂度是O(1). 你这个函数需要分别调 find 和 delete,
: 比一般的删除明显复杂啊。
: [在 BornIn1974 (BornIn1974) 的大作中提到:]
: :
: :【 在 hewei8829 (hewei8829) 的大作中提到: 】
: :...........

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