Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Qual jeito devo usar

Achei muito interessante essas aulas, mas fiquei com uma pulguinha atrás da orelha. Eu aprendi a usar o método sort recentemente, e agora estou com dúvida se quando eu precisar ordenar um array eu devo usar a maneira passada na aula ou se poderia usar o método sort? Tem alguma diferença no resultado se eu utilizar um ou outro?

Para eu testar eu até fiz esses códigos utilizando os dois métodos:

const precos = [25, 15, 30, 50, 45, 20]
precos.sort((a, b) => {
  if (a < b) {
    return -1
  }
  if (a > b) {
    return 1
  }
  if (a < b) {
    return 0
  }
})

console.log(precos)  // resultado: [15,20,25,30,45,50]
const precos = [25, 15, 30, 50, 45, 20]
for (let atual = 0; atual < precos.length; atual++) {
  let analise = atual
  while(analise > 0 && precos[analise] < precos[analise -1]) {
  //trocando preços de lugar:
    let itemEmAnalise = precos[analise];
    let itemAnterior = precos[analise -1]
    precos[analise] = itemAnterior
    precos[analise - 1] = itemEmAnalise

    analise --
  }
}
console.log(precos)  // resultado: [15,20,25,30,45,50]
2 respostas
solução!

Olá, Thaynara! Tudo bem?

Fico feliz que esteja gostando das aulas de algoritmos de ordenação! É uma área muito interessante da programação.

Quanto à sua dúvida, é importante entender que o método sort é uma forma mais simples e direta de ordenar um array em JavaScript. Ele já está implementado na linguagem e é bastante eficiente. No seu exemplo, você utilizou o método sort corretamente e obteve o resultado desejado.

Por outro lado, o algoritmo que você implementou é conhecido como "insertion sort", que consiste em percorrer o array e, para cada elemento, analisar se ele está na posição correta e, se não estiver, trocá-lo de lugar. Esse algoritmo é um pouco mais complexo do que o sort, mas pode ser útil em determinadas situações.

Em resumo, tanto o método sort quanto o algoritmo "insertion sort" são opções válidas para ordenar um array em JavaScript. A escolha entre um ou outro vai depender do contexto e das necessidades do seu código. Por exemplo, se você vai trabalhar com inúmeros dados, você precisará de um algoritmo mais robusto que faça a ordenação e busca mais rapidamente.

Espero ter esclarecido sua dúvida! Se tiver mais alguma pergunta, é só me dizer.

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Muito obrigada pela explicação!