Oppgave 2
String[] navn = {"Olga","Basir","Ali","Per","Elin","Siri","Ole","Mette","Bodil"}; int p = 17, q = 13; String[] hash = new String[p]; for (String n : navn) { int h = n.hashCode() & 0x7fffffff; // hashverdi int i = h % p; // hashindeks if (hash[i] == null) hash[i] = n; // legger inn else { int hopplengde = q - (h % q); // bruker q while (true) { if ((i += hopplengde) >= p) i -= p; // gjør et hopp if (hash[i] == null) { hash[i] = n; // legger inn break; // ferdig med denne verdien } } } } for (int i = 0; i < hash.length; i++) { if (hash[i] != null) System.out.print("(" + hash[i] + "," + i + ") "); } // Utskrift: (Olga,4) (Elin,5) (Mette,6) (Basir,8) (Ali,9) (Per,11) (Ole,12) (Siri,14) (Bodil,16)