Till KTH:s startsida Till KTH:s startsida

Håll reda på media

Det som gör att koden inte fungerar är att det inte finns någon krockhantering.

	 hashvektor[hashcode] = tvbolag;

För att lösa det kan man använda t.ex. krocklistor eller linjär probning.

Linjär probning fungerar så att om det är upptaget på den givna positionen så söker man tills man antingen hittar nyckeln (den var redan instoppad sedan tidigare) eller tills man hittar ett tomt element i vektorn.

Hashkoden är ganska korkat implementerad. Strängarna "AB" och "BA" får samma värde. alfanum = find(alfabet, tvbolagsnamn[i])+1 hashcode += alfanum För att lösa det kan man vikta genom att multiplicera med t.ex. 1, 100 och 10000.

Längden på hashvektorn är lite för liten och dessutom inget primtal. Välj istället hashvektorns storlek till exempelvis 151 (dubbelt så stor som förväntade antalet element).