Codigo classificação e pesquisa
Por: cruz_ferreira • 6/4/2015 • Projeto de pesquisa • 2.835 Palavras (12 Páginas) • 239 Visualizações
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define x 10 /* altere o valor numerico para mudar o tamanho do vetor*/
int vetor[x]; /*Criando vetor vazio de x posições */
clock_t inicio,fim;
int posicao;
void inserir()// Essa função ira preencher o vetor em ordem decrescente apartir do 100000
{
int i,n;//Criando as variaveis i para percorrer o laço e n para atribuir ao valor inserido
n = x; //Iniciando a varialvel n no valor 100000
for(i=0;i<x;i++)//Laço for para percorrer as posições do vetor de "um em um" até completar todas as posições existentes
{
n = n - 1;//Dentro do laço for é subtraindo 1 da variavel n
vetor[i] = n; //Aqui é salvo na posição i do vetor a valor da variavel n
}
}
int pesquisasequencial(int num)/*Essa função ira pesquisar sequencialmente no vetor o um numero digitado*/
{
int i;/* Criando a variavel para percorrer o laço for*/
for(i=0; i<x; i++)/* Laço for para percorrer as posições do vetor de "um em um"*/
{
if (vetor[i]==num)/* Condição que compara se o numero escolhido é igual ao da posição que o laço esta*/
return i;/*Caso o numero escolhido for encontrado ele retorna a posição do vetor*/
}
return -1;/* Caso o numero não for encontrado retorna -1*/
}
int pesquisabinaria(int num)/*Essa função ira ordenar o vetor e pesquisar o um numero digitado*/
{
int inicio, meio, fim;/* Criando as variaveis*/
inicio = 0;
fim = x;
while (inicio <= fim)
{
meio = (inicio + fim)/2;
if (num == vetor[meio])
return meio;
else if (num > vetor[meio])
inicio = meio+1;
else
fim = meio-1;
}
return -1; // não encontrado
}
void bublesort()
{
int i,j,aux;
for(i=0;i<x;i++)
{
for(j=i+1;j<x;j++)
{
if(vetor[j]<vetor[i])
{
aux = vetor[i];
vetor[i] = vetor[j];
vetor[j] = aux;
}
}
}
}
void insertionsort()
{ int i,j, elem;
for (i=1; i < x;i++)
{
elem= vetor[i];
j = i -1;
while ((j >= 0) && (elem < vetor[j]))
{
vetor[j+1] = vetor[j];
j --;
}
vetor[j+1] = elem;
}
}
void selectionsort()
{
int i,j, posmenor,aux;
for(i=0;i<x;i++)
{
posmenor = i;
for(j=i+1;j<x;j++)
{
if (vetor[j]<vetor[posmenor])
posmenor=j;
}
aux=vetor[i];
vetor[i]=vetor[posmenor];
vetor[posmenor]=aux;
}
}
void mostrarelementos()
{
int i;
for (i=0;i<x;i++)
{
printf(" %d - ", vetor[i]);
}
}
int particao(int inf,int sup)
{
int pivo,temp;
int baixo,alto;
pivo = vetor[inf];
...