ATPS CLASSIFICAÇÃO E PESQUISA
Por: ana maria campos • 24/11/2015 • Trabalho acadêmico • 4.197 Palavras (17 Páginas) • 274 Visualizações
[pic 1]
FAC
SISTEMAS DE INFORMAÇÃO
ALUNO - R.A.:
ALUNO - R.A.:
CLASSIFICAÇÃO E PESQUISA
PROF:
ALGORITIMOS DE ORDENAÇÃO E BUSCA DE DADOS
CAMPINAS – SP
2015
Sumário
1. Pesquisa de dados
1.1. Geração de números
1.2. Estrutura de dados
1.2.1 Implementação da estrutura que representa a leitura de 1000 residências
1.2.2 Busca Linear
1.2.3 Busca Binária
2. Métodos de Ordenação
2.1. Ordenação por meio da seleção e troca
2.2. Ordenação por distribuição
2.3. Ordenação por inserção
2.4. Ordenação por intercalação
2.5. Comparação dos algoritmos
2.6. Conclusão
3. Bibliografia
Pesquisa de dados
Geração de números
Para geração de números aleatórios no C, pode-se usar a função rand.
Sua sintaxe é bem simples. A função rand utiliza um número como "semente" para gerar os números aleatórios e esse número só mudará quando a função for chamada novamente (MIZRAHI, 2007).
Exemplo:
main()
{
int i, aleatorio;
for(i = 0; i < 10; i++)
{
aleatorio = rand();
printf("%d\n",aleatorio);
}
system("pause");
}
Resultado do código fonte acima:
[pic 2]
(SCHILDT, 1996) Sempre que se abre o programa, os números gerados são o mesmos. Então não há, ainda, números realmente aleatórios. Se mudarmos nossa variável para receber o valor da função rand ela é chamada apenas uma vez, e sua “semente” nunca é alterada.
main()
{
int i, aleatorio = rand();
for(i = 0; i < 10; i++)
printf("%d\n",aleatorio);
system("pause");
}
Sendo assim, neste caso acima teremos sempre o mesmo número:
[pic 3]
Para gerar números que realmente serão imprevisíveis com a função rand, devemos usar no mesmo programa outra função chamada srand (seed randomic) usada para que o número usado como semente seja sempre diferente. O uso mais comum da função srand é junto com a função time da biblioteca
#include
main()
{
srand(time(NULL));
int i, aleatorio;
for(i = 0; i < 10; i++)
{
aleatorio = rand();
printf("%d\n",aleatorio);
}
system("pause");
}
A cada vez que se executa esse programa um resultado diferente é fornecido.
Para gerar números aleatórios dentro de um determinado intervalo, pode-se utilizar o operador “%” (mod) que nos retorna o resto de uma divisão. Por exemplo: para simular a jogada de um dado, deveremos limitar nossos números aleatórios entre 1 à 6. Usando o operador “%” aplica-se ao valor da variável que receberá os números aleatórios o seguinte calculo: (rand() % 6) + 1;. Qualquer número dividido por 6 retornará o resto entre 0 e 5, somando isso a 1 teremos o intervalo de 1 à 6.
#include
main()
{
srand(time(NULL));
int i, aleatorio = (rand() % 6) + 1;
printf("%d\n",aleatorio);
system("pause");
}
Código fonte para geração de números aleatórios entre 0 e 1000:
#include
int RandomInteger (int low, int high)
{
int k;
srand( (unsigned)time(NULL) );
k = (rand() % high) + low;
return k;
}
main()
{
printf("%d\n",RandomInteger(0,1000));
}
Estrutura de dados
- Implementação da estrutura que representa a leitura de 1000 residências
(TENENBAUM, et al., 1995) Para simular a leitura de 1000 residências, foi criada a função RandomInteger que gera os 1000 valores de rua, número da casa, número do medidor e medida de Consumo para a struct.
...