假设我的列表大约有1,000,000个条目.要获得一个项目,时间将是O(500,000),这对我来说似乎很长.
将列表拆分为多个列表时会发生什么?我们来看一个例子:
将列表拆分为10个部分,我有一个列表如下:
splitted_list = [
[list with 100,000 entries],
[list with 100,000 entries],
[list with 100,000 entries],
[list with 100,000 entries],
[list with 100,000 entries],
[list with 100,000 entries],
[list with 100,000 entries],
[list with 100,000 entries],
[list with 100,000 entries],
[list with 100,000 entries]
]
获得一件物品的时间是O(5)O(50,000)= O(50,005)并且加速率大约为1000%!
当拆分原始列表关于它的根,在这种情况下为1000时,这将给我们一个包含1000个列表的列表,其中包含另外1000个条目.
splitted_list = [
[list with 1000 entries],
[list with 1000 entries],
[list with 1000 entries],
[list with 1000 entries],
...
]
现在看一下获取项目的时间:
O(500) + O(500) = O(1000)
O(1000) < O(50,005) < O(500,000)
这是最佳加速约1000倍!我认为难以置信,所以我的问题:
这是否也适用于实践,或者这只是理论吗?