如何设计一个 arraylike 数据结构,支持 O(1) 的按索引访问和 O(1) 的按索引删除.
資深大佬 : littleMaple 2
用代码来作为例子,假设我们的数据结构名为 MagicArray:
magic_array = MagicArray("How are you", "I am find", "Thank you", "And you") print(magic_array[2]) # 这一行应该打印 "Thank you",且该行的运行时间应该与 magic_array 的长度无关,或者至少“摊还地”无关. magic_array.remove(1) # 这一行的运行时间应该与 magic_array 的长度无关,或者至少“摊还地”无关. print(magic_array[2]) # 这一行应该打印 "And you",且该行的运行时间应该与 magic_array 的长度无关,或者至少“摊还地”无关.
如果我们无法设计出这样的数据结构,我们如何形式证明它不可能存在?如果确实不可能存在,我们可以设计出的最接近它的最快的数据结构能够有多快?
大佬有話說 (22)