Pesquiza e Ordenação 0.0.1
Projeto estuda pesquisa: sequencial e binária; ordenação: selectsort e quicksort.
|
Protótipos e esqueletos de dados para o módulo sortui.c. Mais...
#include "mycommdef.h"
Ir para o código fonte deste ficheiro.
Estruturas de Dados | |
struct | SORT_REPORT |
Esqueleto dos dados do relatório de ordenação. Mais... | |
struct | SEARCH_REPORT |
Esqueleto dos dados do relatório de pesquisa. Mais... | |
Macros | |
#define | DEFAULT_COLS 80 |
#define | DEFAULT_LINES 25 |
#define | SIZE_OF_ARRAY 513 |
#define | MIN_ELEMENT 0 |
#define | MAX_ELEMENT 1000 |
#define | MAX_AVERAGE 1000 |
Enumerações | |
enum | eOptMenu { oGenerateArray = 1, oSearch, oSort, oSS1000, oPrintUnsorted = 51, oPrintSorted, oExit = 6, oUnknown, oNone } |
Opções do menu. Mais... | |
Funções | |
void | PrintMenu (void) |
void | Greeting (void) |
int | read_input (char *, int) |
enum eOptMenu | ParseOption (const char *, enum eOptMenu) |
bool | MoreInput (void) |
void | GenerateRndArray (int[], int) |
void | PrintArray (int[], int) |
int | get_element (void) |
void | ReportSearch (int, bool, bool, const struct SEARCH_REPORT *) |
void | ReportSort (const struct SORT_REPORT *, const struct SORT_REPORT *) |
void | ReportAverage (const struct SEARCH_REPORT *, const struct SORT_REPORT *, const struct SORT_REPORT *) |
void | get_AverageAndStdDeviation (struct SEARCH_REPORT *s_rpt, struct SORT_REPORT *ss_rpt, struct SORT_REPORT *qks_rpt, int nsize) |
#define DEFAULT_COLS 80 |
Define número padrão de colunas. Em caso de erro este será o tamanho adotado.
#define DEFAULT_LINES 25 |
Define número de linhas padrão. Em caso de erro este será o tamanho adotado.
#define MAX_AVERAGE 1000 |
Número de casos no qual serão calculados médias e devio padrão.
#define MAX_ELEMENT 1000 |
Elemento máximo gerado aleatóriamente.
#define MIN_ELEMENT 0 |
Elemento mínimo gerado aleatóriamente.
#define SIZE_OF_ARRAY 513 |
Define tamanho do vetor. Posição 0 utilizada para busca com sentinela. Somente 512 posições são utilizadas.
enum eOptMenu |
Opções do menu.
void GenerateRndArray | ( | int | arr[], |
int | size | ||
) |
Gera vetor com nsize elementos aleatório. O elemento máximo foi defino pela macro MAX_ELEMENT.
[out] | arr[] | - vetor onde será armazenado os valores aleatórios. |
[in] | size | - tamanho de arr[]. |
void get_AverageAndStdDeviation | ( | struct SEARCH_REPORT * | s_rpt, |
struct SORT_REPORT * | ss_rpt, | ||
struct SORT_REPORT * | qks_rpt, | ||
int | nsize | ||
) |
Calula Média e desvio padrão das comparações dos algoritmos busca sequencial, busca binária, ordenação select sort, quick sort.
[out] | s_rpt | - ponteiro para a estrutura pesquisa, com os dados a ser gerado um relatório. |
[out] | ss_rpt | - ponteiro para a estrutura select sort, com os dados a ser gerado um relatório. |
[out] | qks_rpt | - ponteiro para a estrutura quick sort, com os dados a ser gerado um relatório. |
[in] | nsize | - número de casos a serem analizados. |
int get_element | ( | void | ) |
Obtem um elemento. Este elemento é obtido de duas maneiras: 1. aleatóriamente (entre 0 e MAX_ELEMENT) entrando uma string vazia. 2. através da entrada padrão. Neste caso o usuário pode entrar no máximo 9999, qualquer entrada adicional será ignorado.
void Greeting | ( | void | ) |
Imprime título do programa.
bool MoreInput | ( | void | ) |
função verifica se há mais dados a serem lidos da entrada padrão.
Processa opções do usuário.
[in] | pOpt | - ponteiro para string com a entrada do usuário. |
[in] | opt | - opção do usuário na forma enum optMenu. |
void PrintArray | ( | int | arr[], |
int | size | ||
) |
Imprime na tela em forma de uma matriz, numerando linhas e colunas, facilitando a identificação de um elemento no vetor.
[in] | arr[] | - vetor com os elementos a serem impressos no terminal. |
[in] | size | - número de elementos do vetor arr[]. |
void PrintMenu | ( | void | ) |
Imprime opções do menu.
int read_input | ( | char * | pbuff, |
int | size | ||
) |
Le dados da entrada padrão.
[out] | pbuff | - ponteiro que receberá o buffer com dados entrado pelo usuário. |
[in] | size | - número de caracteres que deve ser lido da entrada padrão, incluindo null. |
void ReportAverage | ( | const struct SEARCH_REPORT * | s_rpt, |
const struct SORT_REPORT * | ss_rpt, | ||
const struct SORT_REPORT * | qks_rpt | ||
) |
Impreme relatório das médias e desvio padrão, na saída padrão.
[in] | s_rpt | - ponteiro para os dados da pesquisa sequencial e binária a serem relatadas. |
[in] | ss_rpt | - ponteiro para os dados da ordenação selectsort. |
[in] | qks_rpt | - ponteiro para os dados da ordenação quicksort. |
void ReportSearch | ( | int | element, |
bool | f_seq, | ||
bool | f_bin, | ||
const struct SEARCH_REPORT * | sr | ||
) |
Impreme relatório da pesquisa na saída padrão.
[in] | element | - elemento que foi pesquisado. |
[in] | f_seq | - True se o elemento foi encontrado pela busca sequencial, False caso contrário. |
[in] | f_bin | - True se o elemento foi encontrado pela busca binária, False caso contrário. |
[in] | sr | - ponteiro para a estrutura com os dados da pesquisa sequencial e binária. |
void ReportSort | ( | const struct SORT_REPORT * | sel_rpt, |
const struct SORT_REPORT * | qk_rpt | ||
) |
Impreme relatório de ordenação na saída padrão.
[in] | sel_rpt | - ponteiro para a estrutura com os dados da pesquisa do algoritmo selectsort. |
[in] | qk_rpt | - ponteiro para a estrutura com os dados da pesquisa do algoritmo quicksort. |