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

Informatiker Board » Suche » Suchergebnis » Hallo Gast [Anmelden|Registrieren]
Zeige Beiträge 1 bis 4 von 4 Treffern
Autor Beitrag
Thema: Quadratisches Sondieren Hashing
Kroan

Antworten: 0
Hits: 3.725
Quadratisches Sondieren Hashing 12.05.2011 12:27 Forum: Algorithmen


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
Thema: Heapsort
Kroan

Antworten: 3
Hits: 5.950
24.01.2011 10:11 Forum: Algorithmen


Was ein binärbaum ist , ist mir klar also das hab ich verstanden. Wikipedia hab ich mir angeschaut aber da finde ich jetzt nicht, was genau die 2 Phasen sind aus denen heapsort besteht. Kann es denn jemand kurz und einfach erklären?

MfG Kroan
Thema: Heapsort
Kroan

Antworten: 3
Hits: 5.950
Heapsort 21.01.2011 09:13 Forum: Algorithmen


Hallo alle,
ich schreibe bald Klausuren und habe den Sortieralgorithmus Heapsort nicht wirklich verstanden.

Ich weiß zwar das es einen Minheap und einen Maxheap gibt und das der Minheap ist wenn die kleinste Zahl als Wurzel steht und der Maxheap das Gegenteil eben ist.

Was ich nicht verstanden habe ist, wie arbeitet der Algorithmus denn überhaupt?
Wie funktioniert er?
In alten Klausuren kam öfter die Frage:
Aus welchen beiden wesentlichen Phasen besteht das Sortierverfahren Heapsort?
Und dann soll man Heapsort auf 6 Zahlen anwenden.

Kann es mir jemand einfach und verständlich erklären? Wäre echt nett.

MfG Kroan
Thema: perfektes Hashing
Kroan

Antworten: 0
Hits: 3.975
perfektes Hashing 18.12.2010 22:10 Forum: Algorithmen


Hallo,
ich habe folgende Aufgabe zu erledigen:

Wie groß muss eine Hashtabelle mindestens sein, um perfektes Hashing für die
Abspeicherung von Flughafen-Codes zu erlauben. Flughafen-Codes setzen sich
dabei aus drei Großbuchstaben zusammen.

Wie finde ich das denn heraus?
Bisher gefunden in unseren Folien habe ich diese Formel:

Falls k Schlüssel einzutragen sind (k vorab bekannt)
Wähle p > k.
Eine gute Wahl für h ist dann:
h(x) = (a * x + b) mod p,
mit 1 <= a <= p-1, 0 <= b <= p-1

Nur wie finde ich heraus, was ich für welchen Buchstaben einsetzen muss?
Weiß einer hier weiter?

Ansätze:
Meine einzigen Ansätze sind:
Da ein Code aus 3 Buchstaben besteht sind 26 Buchstaben zur Auswahl also:
U=(A,B,C,D,E,F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z) (0 -25) 25 = p -1 ==> p =26
==> 1<=a<=25
0<=b<=25

THX schonmal,
MfG Kroan
Zeige Beiträge 1 bis 4 von 4 Treffern