#include <iostream>
#include <time.h>
using namespace std;
void ordenarPorSelecao(unsigned short a[], int tam)
{
int i, j, menor, aux;
for (i = 0; i < tam; i++){
menor = i;
for (j = i + 1; j < tam; j++){
if (a[j] < a[menor])
menor = j;
}
if (menor != i){
aux = a[menor];
a[menor] = a[i];
a[i] = aux;
}
}
cout << "Depois de ordenado: " << endl;
for (int i = 0; i < tam; i++){
cout << a[i] << "\t";
}
}
// funcao que realiza a busca sequencial
// a[]: tabela de dados
// tam: tamanho da tabela de dados
// v : valor a ser buscado na tabela
// retorno int: posicao de v em a[] caso ele exista,
// -1 caso contrario
int buscaSequencial(unsigned short a[], int tam,
unsigned short v)
{
int pos = -1; // assumir que o elemento nao existe
for (int c = 0; c < tam; c++){
if (a[c] == v){
pos = c;
break;
}
}
return pos;
}
int main(int argc, char *argv[])
{
// Problema
// Entrada: Um numero digitado pelo usuário e um
// vetor/tabela com 1M de números aleatórios
// Saída: Informar se o número existe na tabela ou não
// Descrição textual
// 1) Ler do usuario um numero inteiro
int tam = 10;
unsigned short t[tam]; // tabela de dados
unsigned short n; // entrada do usuario
int c; // contador
cout << "Digite um numero inteiro: "<< endl;
cin >> n;
// 2) Gerar os numeros aleatorios e armazena-los
// no vetor
srand(time(NULL)); // inicializa o gerador
for (int i = 0; i < tam; i++){
t[i] = rand() % 65454;
}
// 3) Executar a busca sequencial sobre o vetor
int r = buscaSequencial(t, tam, n);
if (r == -1){
cout << "Resultado não encontrado." << endl;
} else {
cout << "Valor encontrado na posicao " << r << endl;
}
// 4) Exibir o vetor na tela
for (int i = 0; i < tam; i++){
cout << t[i] << "\t";
}
// 5) ordenar o vetor
ordenarPorSelecao(t, tam);
// 6) exibir o vetor ordenado
cout << "Depois de ordenado: " << endl;
for (int i = 0; i < tam; i++){
cout << t[i] << "\t";
}
system("PAUSE");
return EXIT_SUCCESS;
}
Nenhum comentário:
Postar um comentário