Michał
Jasiorowski
Inżynier ds.
oprogramowania
Temat: Pomysł na algorytm wyszukiwania
Witam,mam ciekawy problem do rozgryzienia i chciałbym usłyszeć głosy innych z pomysłami na rozwiązanie.
Mianowicie:
Istnieje struktura (C#) o stałym rozmiarze 24B:
struct ObjInfo
{
Guid ID; [16B]
long SID; [8B]
}
Jest ona wypełniana danymi i zapisywana sekwencyjnie w pliku w postaci binarnej.
Po zapisaniu pewnej ilości N takich struktur na dysku, chcę wyszukać strukturę o pewnym ID w celu odczytania SID.
Zapis oraz dostęp odbywa się poprzez Memory Mapped Files więc fizycznie dane nie znajdują się one w pamięci RAM.
Najprostszy sposób to full scan i porównywanie ID. Jednak przy dużych ilościach odpada. Zakładam, że liczba N jest powyżej 10 000 000.
Jakie macie pomysły na zawężenie obszaru poszukiwań w danym pliku?
Dodam, że te struktury zapisane są w takiej kolejności w jakiej wpadały do pliku.