Actualmente estoy tratando de implementar un algoritmo treemap en Javascript. Más específicamente, el algoritmo descrito en Squarified Treemaps. El pseudo código dada tiene el siguiente aspecto:Implementación de un mapa de árbol squarificado en 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
sin embargo mi JavaScript parece:
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());
}
Por lo que yo puedo decir a mi código funciona correctamente, pero la desigualdad es al revés. Supongo que estoy pasando por alto algo en mi implementación, ¿o está la desigualdad al revés en el pseudo código? Gracias
Quizás la falla está en su implementación de 'worst()'. – gilly3
Gracias por los comentarios. He examinado bastante de cerca mi implementación de las peores, y hasta donde puedo decir, devuelve la peor relación correcta. Curiosamente, una [publicación de blog] (http://jectbd.com/?p=271) parece tener la desigualdad en el otro sentido, así que estoy empezando a sospechar que el pseudocódigo es incorrecto. – user414310
Lo siento, debería haber leído la publicación del blog, no solo el código. De hecho, parece que la desigualdad es el camino equivocado. – user414310