Classifica Vetor

Publicado por Ricardo Sousa Guimarães 23/05/2007

[ Hits: 5.543 ]

Download Script_Classifica.TXT




E aí pessoal do VOL!

Como essa é minha primeira contribuição, espero que vocês me perdoem os erros que possam aparecer, mas eu resolvi enviar um algoritmo que fiz aqui na faculdade na aula de Estrutura de Dados.

Ele funciona ordenando os valores dos vetores do menor para o maior.

  



Esconder código-fonte

#include <stdio.h>
//Constantes
#define TAM 15
#define F 0
#define V 1

//Definicao do tipo logico
typedef int logico;

//Definicao dos prototipos
void particao(int[], int, int, int*);
void quicksort(int[], int, int, int);
void le(int[], int);
void imprime(int[],int);

main()
{
   int v[TAM], i, f;

//Leitura do vetor desordenado
   le(v,TAM);

//Ordenacao do vetor
   f=TAM-1;
   i=0;
   quicksort(v,TAM,i,f);

//Impressao do vetor ordenado
   imprime(v,TAM);
   return 0;
}

void particao(int c[], int inicio, int fim, int*k)
{
   int i1,f1,ch;
   logico esq;
   i1=inicio;
   f1=fim;
   ch=c[inicio];
   esq=V;
   while(i1<f1)
   {
      if(esq)
      {
         if(ch>c[f1])
         {
            c[i1]=c[f1];
            c[f1]=ch;
            i1++;
            esq=F;
         }
         else
         {
            f1--;
         }
      }
      else
      {
         if(ch<c[i1])
         {
            c[f1]=c[i1];
            f1--;
            esq=V;
         }
         else
         {
            i1++;
         }
         }
      }
       c[i1]=ch;
      *k=i1;
 }

void quicksort(int c[], int tam, int i, int f)
{
   int k,n;
   if(f>i)
   {
      particao(c,i,f,&k);
      quicksort(c,n,i,k-1);
      quicksort(c,n,k+1,f);
   }
}

void le(int v[], int tam)
{
   int i;
   for (i=0;i<tam;i++)
   {
      printf("Digite o valor do elemento v[%d]\n",i);
      scanf("%d",&v[i]);
   }
}
void imprime(int v[],int tam)
{
   int i;
   for(i=0;i<tam;i++)
   {
      printf("O valor do vetor na posicao v[%d]=%d\n",i,v[i]);
   }
}

Scripts recomendados

Joguinho de labirinto

Algoritimo pra Multiplicação de Matrizes

Parte 5 (ORDENANDO NUMEROS) - Sessão de estudo sobre MATRIZES

Verifica digito do rg de SP

Par/ímpar em C


  

Comentários

Nenhum coment�rio foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts