Nejste přihlášen/a.

Přihlásit se do poradny

 

Algoritmus hledání, změna proměnné

Od: anonimko odpovědí: 1 změna:

Zdravím, pravě se učím hashování a chci se zeptat u toho lineaárního vyhledávání vyhledávání. Musí se definovat to h na začátku. Nemoholo by byt jenom h0=hash(x) a potom dole u vypočtu pro další pozici dat jenom h=(h0+1) mod m.

U dalších vyhledávání jako kvadratického nebo dvojí hashovaní už se to h na začátku nedefinuje, vubec nepoužívá a ve vypočtu pro další pozici už je jenom klasicky (h0 + další index) mod m, na co tam tedy dávat to h, když stačí počáteční index +i

Chci se jenom teda zeptat pro jistotu vysledek by měl byt furt stejný ne, kdybych to takhle napsal do testu.


Algoritmus hledání, změna proměnné

 

 

1 odpověď na otázku
Řazeno dle hodnocení

 

 

hodnocení

0x
avatar gilhad

Abys mohl místo h=(h+1) mod m mít pouze h=(h0+i) mod m tak bys musel někde mít to i a zvětšovat ho. A pak tam máš tu koncovou podmínku pro opakování while h <> h0 kde bys to musel taky mít podchycené.

Ano, šlo by tam na začátku mít i=0 a někde dál i=i+1 a všude místo h psát (h0+i) mod m , ale bylo by to delší, složitější, víc výpočtů, komplikovanější výrazy a nebylo by tak jasné, kdy a proč to má skončit. (Protože se prošly všechny dosažitelné možnosti.)

 

 


 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz.

Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.

Copyright © 2004-2025 Poradna Poradte.cz. Všechna práva vyhrazena. Prohlášení o ochraně osobních údajů. | [tmavý motiv]