Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

154
Vistas
¿Cómo encuentra mi algoritmo de búsqueda primero en amplitud la ruta más corta en el ejemplo de mi tutorial a continuación?

Entiendo los conceptos básicos de cómo funciona una búsqueda en amplitud. Utiliza una estructura de datos de cola para encontrar vértices adyacentes nivel por nivel.

Mi problema es entender cómo encontrar el camino más corto entre dos vértices. En el siguiente ejemplo, asignamos vértices recién visitados junto con su borde a una matriz llamada edgeTo , pero mi pregunta es ¿cómo se almacenan los datos? ¿Es una matriz bidimensional? ¿Y cómo se recupera con la función pathTo ?

El bucle for en la función pathTo me parece un poco extraño, sin duda porque podría ser nuevo en esto. ¿Cómo obtiene esto la ruta más corta y cómo se estructuran los datos o cómo se guardan los bordes?

 // add this to Graph class this.edgeTo = []; // bfs function function bfs(s) { var queue = []; this.marked[s] = true; queue.push(s); // add to back of queue while (queue.length > 0) { var v = queue.shift(); // remove from front of queue if (v == undefined) { print("Visited vertex: " + v); } for each(var w in this.adj[v]) { if (!this.marked[w]) { this.edgeTo[w] = v; this.marked[w] = true; queue.push(w); } } } } function pathTo(v) { var source = 0; if (!this.hasPathTo(v)) { return undefined; } var path = []; for (var i = v; i != source; i = this.edgeTo[i]) { // this for loop is new to me path.push(i); } path.push(s); return path; } function hasPathTo(v) { return this.marked[v]; }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

this.edgeTo es una matriz simple.

El BFS comienza en el vértice de origen, y cuando descubre un nuevo vértice i , establece edgeTo[i] en el vértice predecesor , que necesariamente debe estar un paso más cerca del origen.

En la función pathTo , el bucle for sigue la cadena de enlaces edgeTo desde v hasta el origen. Esto enumera la ruta más corta a la inversa . Estos vértices se agregan a la path a medida que se encuentran.

pathTo luego devuelve la ruta en orden inverso, lo cual es un poco extraño. Una implementación más habitual invertiría la path antes de devolverla, de modo que comenzaría en el source y terminaría en v . Esta función también parece tener algunos errores en otros aspectos. Tal vez todavía estés trabajando en ello...

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda