Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Quadratisches Sondieren Hashing » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Quadratisches Sondieren Hashing
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Kroan
Grünschnabel


Dabei seit: 23.10.2010
Beiträge: 4

Quadratisches Sondieren Hashing Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo,

da wir eine Arbeit über geschlossenes Hashing abhalten sollen, haben wir uns natürlich auch mit der implementierung der verschiedenen Kollisionsstrategien beschäftigt.

Ich habe das LineareSondieren in Java implementiert, dieses funktioniert einwandfrei.

Nun war unsere Überlegung, für das quadratische Sondieren müsse lediglich in der Hashfunktion statt +j + (j*j) (also quadrat von J) geschrieben werden und fertig wären wir. Dies funktioniert allerdings nicht^^

Wir haben dann ewig rumüberlegt und gemacht und je länger wir überlegten um so verzwickter wurde alles. Letztendlich kamen wir zu keinem Ergebnis.

Meine Frage daher:
Wie implementiere ich quadratisches Sondieren, bzw wie funktioniert es UND ich gebe euch meine Quellcode der Methode für Lineares Sondieren, was muss ich daran ändern, um es Quadratisch zu machen?

Quellcode:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
public static void LinearesSondieren(int t, int j) 	
{ 		
    //Hashwert berechnen 		
    einfg = (t + c*j)%m; 		
    //Überprüfe ob bucket an Hashwertstelle gefüllt ist & nicht der Wert  ist,   der eingefügt werden soll. 		
    if(buckets[einfg]!=0 && buckets[einfg]!=t) 		
   { 			
   //Ist dem so, dann sondiere linear mit j+1 			   
      LinearesSondieren(t,j+1); 		
   } 		
   //Ansonsten, wenn bucket der zu einfügende Wert ist, melde bereits vorhanden! 		
   else if(buckets[einfg] == t) 		
   { 			
   //Ausgabe das Wert bereits vorhanden 			   
   System.out.println("Zahl ist bereits vorhanden!"); 		 		 
   } 		
   //Ansonsten, wenn Stelle noch frei ist 		
   else 		
   { 			
   //bucket an der Stelle an der eingefügt werden soll, auf den Wert 
      setzen 			
     buckets[einfg]=t; 			
     System.out.println("Zahl eingefügt an Stelle " + einfg);  	
   } 	 	
}


Danke schonmal

MfG Kroan
12.05.2011 12:27 Kroan ist offline Beiträge von Kroan suchen Nehmen Sie Kroan in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Quadratisches Sondieren Hashing