Boa tarde, Meus códigos de selection sort não têm funcionado, apesar de, aparentemente, estarem escritos corretamente. Revi inúmeras vezes o original e criei novos seguindo o que foi mostrado nas aulas, mas não consegui entender o porquê deles não operarem como esperado. Também revisei esses novos arquivos. Não foi apontado nenhum erro no Terminal, o que me fez pensar que poderia ser algum problema de sintaxe, que também não encontrei. Seguem os códigos:
ListaDeLivrosProg.js - Lista de livros copiado da aula:
const precosLivros = [
{
titulo: "JavaScript",
preco: 25
},
{
titulo: "PHP",
preco: 15
},
{
titulo: "Java",
preco: 30
},
{
titulo: "Elixir",
preco: 50
},
{
titulo: "Go",
preco: 45
},
{
titulo: "Python",
preco: 20
}
];
module.exports = precosLivros;
FuncaoMenorValor.js - função de menor valor:
const livros = require('./ListaDeLivrosProg');
function Menor_Valor(arrProdutos, index_inicial){
let mais_barato = index_inicial;
for( let index_atual = index_inicial; index_atual < arrProdutos.length; index_atual + 1){
if(arrProdutos[index_atual].preco < arrProdutos[mais_barato].preco){
mais_barato = index_atual;
}
}
return mais_barato;
}
module.exports = Menor_Valor;
OrdenacaoPorComparacao.js - Selection Sort:
const livros = require('./ListaDeLivrosProg');
const Menor_Valor = require('./FuncaoMenorValor');
for( let index_atual = 0; index_atual < livros.length; index_atual++){
let lesserValue = Menor_Valor(livros, index_atual);
let livroAtual = livros[index_atual];
let livroMenorPreco = livros[lesserValue];
livros[index_atual] = livroMenorPreco;
livros[lesserValue] = livroAtual;
}
console.log(livros);
Mais uma informação: quando ponho os códigos para rodar, espero uns 2 ou 3 segundos e pressiono "Ctrl+C", por receio de estar em um loop infinito, já que nenhum resultado é mostrado. Ao executar o código da Juliana, a resposta aparece imediatamente, o que reforça a ideia de um problema de lógica na construção do meu código.
Mais outra: houve alguns momentos, entre uma revisão e outra, em que a reposta era simplesmente um par de chaves - {}.