Forum: Algorithmen, Datenstrukturen und Klassendesign
by Peter666,
9. Jan 2011
Ich hab das Beispiel (http://www.ocf.berkeley.edu/~fricke/projects/hoshenkopelman/hoshenkopelman.html) - danke BoolString dafür - komplett nachgebaut.
So ganz funktioniert das aber nicht, da die case Anweisung wohl nicht richtig übersetzt wurde.
Wie muss ich mir "switch (!!Operator1 + !!Operator2)" vorstellen? "case (byte(Operator1>0) + byte(Operator2>0)) of" ist ja wohl doch was anderes, oder?...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Peter666,
9. Jan 2011
@Medium: Ja mich auch :)
Der HK Algorithmus sollte wie folgt aussehen:
var labels: array of integer = nil;
n_labels: integer = 0; (* length of the labels array *)
(* uf_find returns the canonical label for the equivalence class containing x *)
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Peter666,
9. Jan 2011
Genial, danke der Algorithmus scheint das wohl lösen zu können :)
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Peter666,
9. Jan 2011
Die ist nicht rechteckig.
@jfheins: So ähnlich hab ich mir das auch schon gedacht - ich probier das mal. Hmm das geht glaub ich nicht wirklich, denn bei nem Array aus 100 Feldern dauert das ja schon knapp ne Minute.
Peter
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Peter666,
9. Jan 2011
Genau alle Punkte die benachbart sind, sollten in eine Region zusammengefasst werden. Ich brauche allerdings nur eine Liste mit wie viele Punkte pro Region zu finden sind.
Peter
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Peter666,
9. Jan 2011
Hi,
ich hab hier eine Aufgabe über der ich schon seit einiger Zeit grübele:
Als Vorgabe besitze ich eine eindimensionale Matrix (bestehend aus Breite*Höhe):
Map: array of Boolean;
Die Aufgabe ist nun sämtliche gesetzte Punkte zu zählen und Regionen zuzuordnen. Mein Grundgerüst schaut wie folgt aus: