Pular para o conteúdo

Classifica Vetor

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.
Ricardo Sousa Guimarães alphazzz
Hits: 5.812 Categoria: C/C++ Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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.
Download Script_Classifica.TXT Enviar nova versão

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]);
   }
}

Imprime um mapa de caracteres ASCII

Jogo da velha - Contra PC

SIMPCalc

Calculadora

Números randômicos

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.