Classificação e pesquisa
Por: cruz_ferreira • 6/4/2015 • Relatório de pesquisa • 3.491 Palavras (14 Páginas) • 230 Visualizações
#include
#include
#include
#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
{
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
{
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
{
for(j=i+1;j
{
if(vetor[j]
{
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
{
posmenor = i;
for(j=i+1;j
{
if (vetor[j]
posmenor=j;
}
aux=vetor[i];
vetor[i]=vetor[posmenor];
vetor[posmenor]=aux;
}
}
void mostrarelementos()
{
int i;
for (i=0;i
{
printf(" %d - ", vetor[i]);
}
}
int particao(int inf,int sup)
{
int pivo,temp;
int baixo,alto;
pivo = vetor[inf];
alto = sup;
baixo = inf;
while(baixo < alto)
{
while(vetor[baixo] <= pivo && baixo < sup)
{
baixo++; //sobe no arquivo
}
while(vetor[alto] > pivo)
{
alto--; //desce no arquivo
}
if(baixo < alto) /*troca*/
{
temp = vetor[baixo];
vetor[baixo] = vetor[alto];
vetor[alto] = temp;
}
}
vetor[inf] = vetor[alto];
vetor[alto] = pivo;
return alto;
}
void quicksort(int esq,int dir)
{
int i;
if(dir > esq)
{
i = particao(esq,dir);
quicksort(esq,i-1);
quicksort(i+1,dir);
}
}
void menu()
{
int teste;
printf("\n\t\t\t\tMenu Complexidade\n\n");
...