2
respostas

[Dúvida] A ordem dos livros não se altera, não sei porque...

const livros = require("./lista-livros")

function insertionSort(lista){

for(let atual = 0; atual < lista.length; atual++){
    let analise = atual;
    while(analise > 0 && lista[analise].preco < lista[analise-1].preco){
     let itemAnalise = lista[analise];
     let itemAnterior = lista[analise -1];

     lista[analise] = itemAnterior
     lista[analise -1] = itemAnalise

     analise--
    }
}  
console.log(lista);

}

insertionSort(livros)

2 respostas

Olá, Nicolas!

Pelo que percebi, o seu código parece estar correto e deveria funcionar como esperado. No entanto, se a ordem dos livros não está sendo alterada, pode ser que o problema esteja na lista de livros que você está importando.

O código que você compartilhou está usando o método require para importar a lista de livros de um arquivo chamado "lista-livros". Se essa lista não estiver no formato correto, ou se os livros já estiverem ordenados por preço, então a função insertionSort não fará nenhuma alteração na lista.

Para verificar se esse é o problema, você poderia tentar executar a função insertionSort em uma lista de livros que você sabe que não está ordenada. Por exemplo:

const livros = [
  { titulo: 'Livro A', preco: 50 },
  { titulo: 'Livro B', preco: 30 },
  { titulo: 'Livro C', preco: 40 },
];

insertionSort(livros);

Se a função insertionSort alterar a ordem dos livros nesse exemplo, então o problema provavelmente está na lista de livros que você está importando com o require.

Espero ter ajudado e bons estudos!

obrigado pela ajuda, na lista o preco estava como preço... e ai no codigo acabei passando diferente

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software