TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Trabalho E Curso

Monografias: Trabalho E Curso. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  15/7/2013  •  350 Palavras (2 Páginas)  •  635 Visualizações

Página 1 de 2

Devido a sua grande utilidade, a biblioteca padrão de C disponibiliza, via a interface stdlib.h, uma função que ordena vetores usando esse algoritmo. A função disponibilizada pela biblioteca independe do tipo de informação armazenada no vetor.

A implementação dessa função genérica segue os princípios discutidos na implementação do algoritmo de ordenação bolha genérico. O protótipo da função disponibilizada pela biblioteca é:

void qsort (void *v, int n, int tam, int (*cmp)(const void*, const

void*));

Os parâmetros de entrada dessa função são:

v: o ponteiro para o primeiro elemento do vetor que se deseja ordenar. Como não se sabe, a priori, o tipo dos elementos do vetor, temos um ponteiro genérico – void*. n: o número de elementos do vetor. tam: o tamanho, em bytes, de cada elemento do vetor. cmp: o ponteiro para a função responsável por comparar dois elementos do vetor. Em C, o nome de uma função representa o ponteiro da função. Esse ponteiro pode ser armazenado numa variável, possibilitando chamar a função indiretamente. Como era de se esperar, a biblioteca não sabe comparar dois elementos do vetor (ela desconhece o tipo desses elementos). Fica a cargo do cliente da função de ordenação escrever a função de comparação. Essa função de comparação tem que ter o seguinte protótipo: int nome (const void*, const void*); O parâmetro cmp recebido pela função quicksort é um ponteiro para uma função com esse protótipo. Assim, para usarmos a função de ordenação da biblioteca temos que escrever uma função que receba dois ponteiros genéricos, void*, os quais representam ponteiros para os dois elementos que se deseja comparar. O modificador de tipo const aparece no protótipo apenas para garantir que essa função não modificará os valores dos elementos (devem ser tratados como valores constantes). Essa função deve ter como valor de retorno –1, 0, ou 1, dependendo se o primeiro elemento for menor, igual, ou maior que o segundo, respectivamente.

Para ilustrar a utilização da função qsort vamos considerar alguns exemplos. O código a seguir ilustra a utilização da função para ordenar valores reais. Neste caso,

...

Baixar como (para membros premium)  txt (2.2 Kb)  
Continuar por mais 1 página »
Disponível apenas no TrabalhosGratuitos.com