Implementacija s tabelo logičnih vrednosti

Denimo, da se omejimo na množice, ki vsebujejo kvečjemu cela števila med 0 in vključno Z − 1, pri čemer je Z neko ne preveliko celo število. Takšno množico lahko predstavimo s tabelo z Z elementi logičnega tipa. Če število i pripada množici, ima element tabele na indeksu i vrednost True, sicer pa False. Na primer če vzamemo Z = 10, potem množico {0, 2, 3, 7} predstavimo s to tabelo:

[True, False, True, True, False, False, False, True, False, False]

Vaja

Tovrstna predstavitev množice je časovno izjemno učinkovita. Prisotnost števila x ∈ {0, 1, ... , Z − 1} preverimo tako, da preverimo vrednost elementa v tabeli na indeksu x. Število x v množico dodamo tako, da element tabele na indeksu x postavimo na True, pri odstranjevanju pa pripadajoči element tabele postavimo na False. Časovna zahtevnost vseh treh operacij znaša O(1), saj je čas, ki ga potrebujejo operacije, povsem neodvisen od števila elementov v množici, pa tudi od velikosti tabele. Oglejmo si modul mnozicaTabelaLogicnih.py (glej kodo).

V razmislek


Izvedi Počisti