最坏情况下需要 Ω ( n 2 ) \Omega(n^2) Ω(n2) 时间,最好情况下仅需 O ( n ) O(n) O(n) 时间。
删除无序向量中的重复元素
template <typename T> Rank Vector<T>::dedup(){
Rank oldSize=_size;//原来的规模
for(Rank i=1;i<_size;)//从前往后枚举每一个元素
if(-1==find(_elem[i],0,i)//在 [0,i-1] 这个区间寻找等于 _elem[i] 的元素
i++;//find 返回的是下标,没有找到的话就往后面找
else
remove(i);//找到了就删除
return oldSize-_size;
}
无序向量唯一化问题的下界是 Ω ( n l o g n ) \Omega(nlogn) Ω(nlogn)