Ich versuche derzeit, einen Treemap-Algorithmus in Javascript zu implementieren. Genauer gesagt der in Squarified Treemaps beschriebene Algorithmus. Der Pseudocode gegeben sieht wie folgt aus:Implementieren einer squarified Treemap in Javascript
procedure squarify(list of real children, list of real row, real w)
begin
real c = head(children);
if worst(row, w) <= worst(row++[c], w) then
squarify(tail(children),row++[c], w)
else
layoutrow(row);
squarify(children,[], width());
fi
end
aber mein JavaScript wie folgt aussieht:
var c = children[0];
if (worst(row, w) >= worst(row.concat(c), w)) {
this.squarify(children.splice(1), row.concat(c), w);
} else {
layoutrow(row);
this.squarify(children, [], width());
}
Soweit ich meinen Code kann sagen, funktioniert einwandfrei, aber die Ungleichheit ist der falsche Weg um. Ich gehe davon aus, dass ich etwas in meiner Implementierung übersehen habe, oder ist die Ungleichheit im Pseudo-Code falsch herum? Dank
Vielleicht ist der Fehler in Ihrer Implementierung von 'schlimmsten()'. – gilly3
Danke für die Rückmeldung. Ich habe meine Implementierung des schlechtesten ziemlich genau betrachtet, und soweit ich das beurteilen kann, gibt es das schlechteste Verhältnis korrekt zurück. Interessanterweise scheint ein [Blogpost] (http://jectbd.com/?p=271) die Ungleichheit anders zu haben, so dass ich anfange zu vermuten, dass der Pseudocode falsch ist. – user414310
Entschuldigung, sollte den Blogbeitrag gelesen haben, nicht nur den Code. Es sieht tatsächlich so aus, als sei die Ungleichheit falsch. – user414310