Algorithm 从另一个数组算法中删除一个数组元素

Algorithm 从另一个数组算法中删除一个数组元素,algorithm,logic,Algorithm,Logic,我有一个数组A和另一个数组B。如何从B中删除A中的元素,算法的运行时间是多少?允许复制 提前谢谢 单个阵列的最坏运行时间为O(N),而两个阵列的最坏运行时间通常为O(N^2)。您可以使用系统事件或用户输入删除元素,例如,对于字符串数组,您可以要求用户选择要删除的元素并在这些索引中分配空字符串,或者您可以使用系统事件删除所需的元素。运行时间完全取决于您的实现 排序A,运行时间可以是O((A+B)log A) 如果A和B中的值可以散列,则运行时间可以是O(A+B) 如果您不关心数组元素保持其相对顺序

我有一个数组A和另一个数组B。如何从B中删除A中的元素,算法的运行时间是多少?允许复制


提前谢谢

单个阵列的最坏运行时间为O(N),而两个阵列的最坏运行时间通常为O(N^2)。您可以使用系统事件或用户输入删除元素,例如,对于字符串数组,您可以要求用户选择要删除的元素并在这些索引中分配空字符串,或者您可以使用系统事件删除所需的元素。

运行时间完全取决于您的实现

排序A,运行时间可以是O((A+B)log A)

如果A和B中的值可以散列,则运行时间可以是O(A+B)


如果您不关心数组元素保持其相对顺序,那么删除一个项就是O(1)。只需将要删除的项目与最后一个项目交换,并减小大小。

如何删除取决于实现。您甚至还没有为实现指定语言;在算法层面,它只是集合
B-A
。运行时间取决于硬件、语言、数组的实现、正在运行的硬件、数组大小……您打算使用哪种算法?到目前为止,您尝试了什么?可以以相同的复杂性维护元素顺序-只需错过重复项(计算它们)并将好元素从第i个位置移动到
A[i-dupcount]