最快的稳定重复项删除算法
|
我有一个数组,我需要离开它,不能重复。我必须将那些具有最小顺序的唯一元素留在原始数组中。那大概是我的意思
NoDuplicate(A, value)
for int i = 0 to i < A.length
if A[i] == value
return true
i++
return false
StableRemoveAlgo(A)
for int i = 0 to i < A.length
if NoDuplicate(result, A[i])
result.append(A[i])
return result
是否有比这种简单算法更快的算法?
更新:我无法对数组进行排序。我需要重复删除算法的“稳定”版本。因此,如果A[i] == A[j] and i < j
算法必须删除元素A[j]
没有找到相关结果
已邀请:
4 个回复
董碘奴星
好按紊叉
嘘崇蔡对
墩瓣茅械
如果您需要自己实现稳定的排序算法,最简单的方法可能是Mergesort。 但是,在这种情况下,您可以直接改编合并例程以忽略相似的值(优先于较早的值),而不必返回所有这些值。