Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Não entendi

Não entendi por que o pivo trocou de lugar com java, não era só para o php trocar de lugar com o primeiro elemento? Por que o pivo trocou de lugar tambem?

1 resposta
solução!

Olá João.

Tudo bem?

No algoritmo de ordenação, especificamente na função divideNoPivo(), o pivô é um elemento escolhido que vai ajudar a dividir o array em duas partes: uma com elementos menores que o pivô e outra com elementos maiores.

No seu exemplo, o pivô foi inicialmente o elemento "Rust" com preço 22. A função encontraMenores() conta quantos elementos têm um preço menor que o pivô. Depois, o pivô é trocado de lugar com o elemento que está na posição logo após a quantidade de elementos menores.

Vamos analisar um passo a passo simplificado:

  1. Escolha do Pivô: O pivô é "Rust" (preço 22).
  2. Contagem de Menores: A função encontraMenores() conta quantos elementos têm preço menor que 22. Suponha que são 2 elementos.
  3. Troca do Pivô: O pivô "Rust" vai para a posição 2 (índice 2, que é logo após os 2 elementos menores).

Depois disso, o algoritmo continua a percorrer o array e troca os elementos conforme necessário para garantir que todos os elementos menores que o pivô fiquem à esquerda e os maiores à direita.

Aqui está um exemplo prático:

  • Array inicial:
    [
      { titulo: "Go", preco: 45 },
      { titulo: "C++", preco: 35 },
      { titulo: "Java", preco: 30 },
      { titulo: "PHP", preco: 15 },
      { titulo: "Elixir", preco: 50 },
      { titulo: "Rust", preco: 22 }
    ]
    
  • Após escolher o pivô "Rust" e contar os menores, temos:
    [
      { titulo: "Go", preco: 45 },
      { titulo: "C++", preco: 35 },
      { titulo: "Rust", preco: 22 },
      { titulo: "PHP", preco: 15 },
      { titulo: "Elixir", preco: 50 },
      { titulo: "Java", preco: 30 }
    ]
    
    Note que "Rust" foi trocado com "Java" para a posição correta.

Espero ter ajudado e bons estudos!