PDA

View Full Version : Duplicates


Mono
Aug 27, 2002, 01:25
PPL-ner

Uremn ayspisi harc.

Yes unem mi inch vor list. Liste shat metz e. Mot mi 100000-ic minchev 1.000.000 elementner. Uremn uzum em __effektif___ algoritm vore kkaroghana ayd listic hani duplikatnere inchkan hnaravor e arag.

PS. I dep mi hat algoritm ei grel vorov uzeci 32000-anoc string listic duplicatnere hanel ( PERL-ov ) mot 15 rope tevec ed antere :o

Aram Hambardzumyan
Aug 27, 2002, 04:06
пока что такой (c - контейнер, содержащий элементы):

#include <algorithm>
using namespace std;

sort(c.begin(), c.end());
c.erase(unique(c.begin(), c.end()), c.end());
сложность - n * log n + n (т.е. фактически n * log n). но! результирующая последовательность будет отсортирована.
или:

#include <algorithm>
using namespace std;

for(C::iterator it = c.begin(), end = c.end(); it != end; ++it)
{
end = remove(it + 1, end, *it);
}
c.erase(end, c.end());
сложность - n(n+1)/2, т.е. n^2. зато без сортировки.
сложность erase-а в обоих случаях не учитывалась, но она добавит всего лишь слагаемое n.

Mono
Aug 27, 2002, 17:59
Spasibo Aram djan

Ya ispolzoval vtoroy varyant no vidimo problema medlennosti moyevo scripta ne iz za Algoritma a iz za PERL-a ili je iz za kompa :o