Ir para conteúdo
Fórum Script Brasil
  • 0

Ordenações com qsort()


bruce845

Pergunta

A função qsort() da biblioteca stdlib.h (ou cstdlib em C++) ordena qualquer vetor em qualquer ordem que você queira.

qsort(vetor,quantidade,tamanho,função)
Onde: vetor é o nome do vetor que você quer ordenar. quantidade é o número de elementos do vetor. tamanho é o tamanho em bytes de cada elemento do vetor. coloque como parâmetro, a função sizeof(nome_da_variável). A função pode ser qualquer nome que você queira. função é o nome da função que fará as comparações que a função qsort() enviará como parâmetro. Você terá que fazer essa função da seguinte forma:
int comparador(const void *valor1,const void *valor2)
{
  int numero1=*(int *)valor1,int *numero2=*(int *)valor2;
  if(numero1>numero2)
    return 1;
  else if (numero1<numero2)
    return -1;
  else
    return 0;
}
Os parâmetros deverão ser (const void *) sempre! E onde está int, alterem para o tipo de variáveis do vetor. Caso queira ordenar em ordem decrescente, inverta as condições. Nunca esqueça de fazer o cast (conversor), convertendo as variáveis void para o tipo de dado do vetor que você quer ordenar. Para ordenar uma matriz de caracteres (strings) em ordem crescente, faça a função da seguinte forma:
int comparador(const void *valor1,const void *valor2)
{
  return strcmp((char *)valor1,(char *)valor2);
}

Espero ter ajudado!

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...