Till KTH:s startsida Till KTH:s startsida

Håll reda på media

Det som gör att koden inte fungerar är

1. att det inte finns någon krockhantering.

	 hashvektor[hashcode] = tvbolag;

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

2. 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 förbättra den kan man vikta genom att multiplicera med t.ex. 1, 100 och 10000.

3. Längden på hashvektorn är p=100, vilket inte är tillräckligt för att vi ska få 50% luft om vi stoppar in 75 TV-bolag, vi behöver minst 150 platser (dubbelt så stor som förväntade antalet element). Om vi vill använda kvadratisk probning för krockhanteringen. måste hashvektorns storlek dessutom vara ett primtal. 151 är närmast större primtal efter 150.

Lärare Linda Kann skapade sidan 20 september 2016