我对于未排序的链表中的一个具体问题感到好奇。假设我们有一个基于数组实现的未排序的链表。在从列表中删除元素时,保留当前元素顺序是否重要或者具有优势呢?那个空洞必须要填充,所以我们可以把列表中的最后一个元素取出来并插入到那个空洞中。是将所有元素移动到另外的位置的时间复杂度大于只移动单个元素吗?
是的,使用数组实现时,如果要移动所有元素以便插入新元素,则时间复杂度会更大,最多达到n/2(如果该元素在数组中间)。而移动一个元素则是常数时间。
由于您正在使用数组,答案是肯定的,因为您需要进行多次赋值。
如果您使用了节点,从复杂性的角度来看会更好。
LinkedList
和ArrayList
是List
的不同实现。给出一个通用的答案:这取决于你想要它做什么,只要在添加/删除对象时说明如何保持顺序即可。 - EmzArrayUnsortedList
是我应该指定的内容。我仍在学习如何适当地提出问题。 - sunnlamp