1
resposta

Outra Possibilidade... FOR + IF

const livros = require('./listaLivros');

function insertionSort(lista) {

  let index=1
  for (index; index < lista.length; index++) {
    if (index > 0 && lista[index].preco < lista[index - 1].preco) {
      let itemAtual = lista[index];
      let itemAnterior = lista[index - 1];

      lista[index] = itemAnterior
      lista[index - 1] = itemAtual

      index = index-2       
      //necessário subtrair dois do index para refazer a análise anterior, pois ao executar uma vez o laço, o for está incrementando +1.
    }
  }
  console.log(lista);
}

insertionSort(livros);
1 resposta

Olá Alessandro, tudo certo?

Desde já peço desculpa pela demora para respondê-lo.

Na verdade, essa é uma das formas mais comuns de implementação desse algoritmo.

O insertion sort é um algoritmo de ordenação simples e eficiente para pequenas quantidades de dados. Ele percorre a lista de itens a serem ordenados, comparando cada item com os itens anteriores e movendo-os para a posição correta na lista.

No seu código, você está percorrendo a lista com um laço for e comparando cada item com o item anterior utilizando uma estrutura condicional if. Se o item atual for menor que o item anterior, você está trocando as posições dos itens na lista.

Continue assim, compartilhando os seus conhecimentos. Abraços e bons estudos!