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?
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?
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:
encontraMenores()
conta quantos elementos têm preço menor que 22. Suponha que são 2 elementos.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:
[
{ titulo: "Go", preco: 45 },
{ titulo: "C++", preco: 35 },
{ titulo: "Java", preco: 30 },
{ titulo: "PHP", preco: 15 },
{ titulo: "Elixir", preco: 50 },
{ titulo: "Rust", preco: 22 }
]
[
{ 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!