Usuário com melhor resposta
Programa que faça uma busca Linear

Pergunta
-
Galera...preciso fazer um programa que faça uma busca linear que recebe como parâmetro um vetor ordenado eo valor cuja localização deve ser encontrada no vetor. A função deve retornar a posição onde o valor procurado seencontra, ou -1 caso não tenha encontrado. Além disso, preciso de outra função para ordenar o vetor caso esteja desordenado...Alguem poderia me ajudar? nao sei como fazer :Stks
Cleilton Silva
Respostas
-
Caro Cleiton...
Você pode implementar uma classe do tipo:
#ifndef BuscaS_H
#define BuscaS_H
#include <iostream>
using namespace std;
class BuscaS
{
private:
int vetor [10]; //Você pode utilizar estruturas dinâmicas também
int chave;
int locais [10]; //armazena as posições em que estavam a chave de busca
int tam;
int contador;
public:
BuscaS (int [], int, int);
void realizaBusca ();
void imprimeLocais ();
};
#endif
#include "Sequencial.h"
BuscaS::BuscaS (int a[], int tamanho, int key)
{
chave = key;
tam = tamanho;
contador = 0;
for (int cont = 0; cont < tam; cont++)
{
vetor[cont] = a[cont];
locais [cont] = 0;
}
}
void BuscaS::realizaBusca ()
{
for (int cont = 0; cont < tam; cont++)
if (vetor [cont] == chave)
{
for (int aux = contador; aux <= cont; aux++)
locais [aux] = cont;
contador++;
}
}
void BuscaS::imprimeLocais ()
{
if (contador != 0)
{
cout << "Chave encontrada em: ";
for (int cont = 0; cont < contador; cont++)
cout << locais [cont] << ", ";
cout << endl;
}
else
cout << "Chave nao encontrada!" << endl;
Outra opção pode ser você utilizar as funções do arquivo <algorithm>, um bom exemplo é a função find().
- Marcado como Resposta Cleilton Silva quarta-feira, 16 de novembro de 2011 13:49
Todas as Respostas
-
Caro Cleiton...
Você pode implementar uma classe do tipo:
#ifndef BuscaS_H
#define BuscaS_H
#include <iostream>
using namespace std;
class BuscaS
{
private:
int vetor [10]; //Você pode utilizar estruturas dinâmicas também
int chave;
int locais [10]; //armazena as posições em que estavam a chave de busca
int tam;
int contador;
public:
BuscaS (int [], int, int);
void realizaBusca ();
void imprimeLocais ();
};
#endif
#include "Sequencial.h"
BuscaS::BuscaS (int a[], int tamanho, int key)
{
chave = key;
tam = tamanho;
contador = 0;
for (int cont = 0; cont < tam; cont++)
{
vetor[cont] = a[cont];
locais [cont] = 0;
}
}
void BuscaS::realizaBusca ()
{
for (int cont = 0; cont < tam; cont++)
if (vetor [cont] == chave)
{
for (int aux = contador; aux <= cont; aux++)
locais [aux] = cont;
contador++;
}
}
void BuscaS::imprimeLocais ()
{
if (contador != 0)
{
cout << "Chave encontrada em: ";
for (int cont = 0; cont < contador; cont++)
cout << locais [cont] << ", ";
cout << endl;
}
else
cout << "Chave nao encontrada!" << endl;
Outra opção pode ser você utilizar as funções do arquivo <algorithm>, um bom exemplo é a função find().
- Marcado como Resposta Cleilton Silva quarta-feira, 16 de novembro de 2011 13:49
-