Pular para o conteúdo principal

Postagens

Destaques

Sort

 function ordenarSteps(arr) {   // Criar um mapa para fácil acesso aos objetos por stepId   const stepMap = new Map(arr.map(step => [step.stepId, step]));   // Calcular o grau de entrada (quantos steps apontam para ele)   const inDegree = new Map(arr.map(step => [step.stepId, 0]));   arr.forEach(step => step.nextIds.forEach(id => inDegree.set(id, (inDegree.get(id) || 0) + 1)));   // Filtrar os steps que não possuem steps anteriores (grau de entrada 0)   const queue = [...arr.filter(step => inDegree.get(step.stepId) === 0)];   const ordered = [];   // Ordenação baseada em Kahn's Algorithm (Algoritmo de Ordenação Topológica)   while (queue.length > 0) {     const current = queue.shift();     ordered.push(current);     current.nextIds.forEach(id => {       inDegree.set(id, inDegree.get(id) - 1);       if (inDegree.get(id) === 0) {       ...

Últimas postagens

ProcessFile