ATIVIDADES PRÁTICAS SUPERVISIONADAS DE CLASSIFICAÇÃO E PESQUISA
Por: Jose.Nascimento • 10/4/2018 • 1.554 Palavras (7 Páginas) • 388 Visualizações
...
O desafio de sua equipe é criar uma solução que melhore a ordenação e análise dos dados de coleta, gerando resultados mais rápidos e simples de serem analisados pelos gerentes das fornecedoras de energia elétrica (denominadas concessionárias ou permissionárias).
Os algoritmos que serão adotados na solução são os algoritmos clássicos de ordenação e busca, devendo a equipe utilizá-los de forma bastante ampla.
Relatório 01: Pesquisa de Dados
2.0 Objetivo do Desafio
Desenvolver os algoritmos de ordenação e busca de dados do consumo de energia elétrica nas residências de um município. Para atender a este desafio serão desenvolvidos algoritmos e elaborados os relatórios de forma que documentem a realização destas atividades solicitadas. Estes algoritmos e relatórios serão entregues com o desenvolvimento do desafio.
3.0 Relatório 01: Pesquisa de Dados.
Conceito de Pesquisa Seqüencial
Pesquisa Sequencial: é usada para verificar item por item da lista, até encontrar o item desejado. Esse método é útil para vetores pequenos e números que estejam desordenados.
Mas se o vetor for muito grande, esse tipo de processo não é recomendado, pois o tempo para a execução desse processo acaba sendo lenta.
Podemos usar o exemplo de 9 números diferentes, veja:
Temos o vetor (1,8,5,6,4,9,7,3,2). Vamos supor que precisamos achar o número 3.
A Pesquisa sequencial irá verificar um item por vez até achar o número 3.
V 1 2 3 4 5 6 7 8 9
n 1 8 5 6 4 9 7 3 2
A posição 1 do vetor tem o número 1;
A posição 2 do vetor tem o número 8;
A posição 3 do vetor tem o número 5;
A posição 4 do vetor tem o número 6;
A posição 5 do vetor tem o número 4;
A posição 6 do vetor tem o número 9;
A posição 7 do vetor tem o número 7;
A posição 8 do vetor tem o número 3;
A posição 9 do vetor tem o número 2;
A pesquisa começará pelo vetor 1, nesse vetor não achamos o número desejado, que no nosso caso é o número 3.
Com o não achamos continuaremos a procurar. A próxima posição do vetor é a 2, que encontramos o número. Sendo assim ainda não encontramos o valor desejado.
Assim continuaremos a pesquisar, o próximo vetor é o 3, nessa posição o valor que está lá é o 5.
A próxima posição é a de número 4, o valor que está nessa posição o valor que está lá é o 6;
A próxima posição a ser verificada é a posição de 5. Que tem o elemento 4.
A próxima posição a ser verificada é a posição de 6. Que tem o elemento 9.
A próxima posição a ser verificada é a posição de 7. Que tem o elemento 7.
A próxima posição a ser verificada é a posição de 8. Que tem o elemento 3. Encontramos o elemento desejado.
Veja o exemplo no código abaixo de busca sequencial conforme a Linguagem C:
#include
#include
#include
#include
clock_t tInicio, tFim, tDecorrido;
struct Residencia
{
char rua[25];
int numCasa;
int numMedidor;
float medidaConsumo;
} vetResidencias[1000];
int tam = 10000;
int tamRes = 1000;
int vetor[10000];
FILE *fpEntrada, *fpSaida;
int contaTrocas=0;
int contaTrocasEst=0;
int nPassos=0;
int menorValor(int indCur){
int i=indCur;
int vMenor=1000000;
int iAchei;
for(i=indCur; i
if(vetor[i]
vMenor = vetor[i];
iAchei = i;
}
}
return iAchei;
}
void swap(int ind1, int ind2){
// Questao 01 O que faz esta rotina?
// Sua resposta aqui
//
//
//
int temp;
temp = vetor[ind1];
vetor[ind1] = vetor[ind2];
vetor[ind2] = temp;
contaTrocas++;
}
void swap2(int ind1, int ind2){
struct Residencia tmp;
tmp = vetResidencias[ind1];
vetResidencias[ind1] = vetResidencias[ind2];
vetResidencias[ind2] = tmp;
...