Sortowanie plików. W przypadku liczb całkowitych o stałej długości można to zrobić w czasie O (n):
- Pobranie części pliku, posortowanie za pomocą sortowania radix, zapisanie do pliku tymczasowego. Powtarzaj do momentu zakończenia wszystkich danych. Ta część to O (n)
- Scal posortowane części. To też jest O (n). Możesz nawet pominąć powtarzające się cyfry.
Na posortowanych plikach znajdź wspólny podzbiór liczb całkowitych: porównaj liczby, zapisz je, jeśli są one równe, a następnie wykonaj krok o jeden numer naprzód w pliku o mniejszej liczbie. To jest O (n).
Wszystkie operacje to O (n), a ostateczny algorytm to również O (n).
EDYCJA: metoda bitmapowa jest znacznie szybsza, jeśli masz wystarczającą ilość pamięci dla bitmap. Ta metoda działa dla dowolnych stałych liczb całkowitych, na przykład 64-bitowych. Bitmapa o rozmiarze 2^31 Mb nie będzie praktyczna przez co najmniej kilka lat :)
czy zostały posortowane? –
nr .. liczby losowe –
Jaki rozmiar całkowity? – harold