Uma função que implementa parte do algoritmo quick sort pode ser vista abaixo. Todo o resto do algoritmo foi omitido para que analisemos somente este método. O algoritmo completo pode ser visto no material PDF da Aula 2. No código, a função chamada de particao refere-se à função que localiza um pivô no vetor de dados e faz as respectivas trocas dos valores, ordenando seguindo algum critério. No código, vet é o vetor de dados, e troca é a função que realiza uma troca entre dois valores destoantes utilizando uma variável auxiliar.
Soluções para a tarefa
Apesar de o algoritmo não ter sido de fato disposto, é possível responder a questão com base no contexto do quick sort . As linguagens de programação são bastante importantes para o desenvolvimento da sociedade atual dado o alto teor do crescimento tecnológico.
Consequentemente, o desenvolvimento do estudo das linguagens de programação é dividido em dois grande grupos, as linguagens de alto e de baixo nível.
Nas linguagens de baixo nível, precisamos implementar algoritmos de ordenação como por exemplo o quick sort, que compara os valores de um número em um vetor, e muda os índices.
Resposta: Na linha 4 acessamos a posição do pivô no vetor e na linha 5 acessamos a posição correspondente do vetor conforme calculado na linha 4.
Explicação: Primeiro localizamos a posição (linha 4) e depois o valor daquela posição (linha 5).
Algoritmo da questao:
1. int particao(int vet[], int p, int u)
2. {
3. int pivo, pivo_pos, i, j;
4. pivo_pos = (p + u) / 2;
5. pivo = vet[pivo_pos];
6.
7. i = p - 1;
8. j = u + 1;
9. while (i < j)
10. {
11. do
12. {
13. j--;
14. } while (vet[j] > pivo);
15.
16. do
17. {
18. i++;
19. } while (vet[i] < pivo);
20.
21. if (i < j)
22. troca(vet, i, j);
23. }
24. return j;
25. }