Estruturas de Dados Avançadas

2551 palavras 11 páginas
˜
UNIVERSIDADE ESTADUAL DO MARANHAO-UEMA
ˆ
´
CENTRO DE CIENCIAS TECNOLOGICAS-CCT
ENGENHARIA DE COMPUTACAO
¸˜

ESTRUTURAS DE DADOS AVANCADAS
¸

Aluno:

Brasil
2014

Trabalho de Avalia¸˜o ca 1. Modifique o algoritmo Quicksort de forma a ele utilizar um outro m´todo de ordena¸ao e c˜ simples para quando as cole¸oes ficarem menores (preferencialmente inser¸ao). c˜ c˜
O algoritmo foi modificado de modo que quando o procedimento QuickSort for chamado em um subarranjo com menos de k elementos, executa a ordena¸ao por inser¸˜o sobre o arranjo c˜ ca inteiro, a fim de concluir o processo de ordena¸ao. Segundo Thomas H. Cormen no seu livro c˜ ”Introduction to Algorithms - Second Edition”, este algoritmo misto ´ executado no tempo e esperado O(nk + n log(n/k)).
Abaixo segue o algoritmo Quick Sort modificado implementado em Linguagem C
Listing 1: QuickSortMod.c
# include
# include
# include
# include

< stdio .h >
< time .h >
< stdlib .h >
< math .h >

# define MaxTam 1000000
# define MaxRand 1000
# define Max 10000
// Quick Sort Modificado
// utiliza um outro m´ todo de ordena¸ ~ o simples quando e ca
// as cole¸ ~ es ficam menores co void imprimir_lista () ; typedef struct { int chave ;
} TItem ;
TItem lista [ MaxTam ]; void iniciar_lista () {
// Inicializar o gerador de n´ meros aleat´ rios u o
// Com time ( NULL ) srand ( time ( NULL ) ) ; int i ; for ( i = 0; i < MaxTam ; i ++) { lista [ i ]. chave = rand () % MaxRand ;
}
} void preencher_lista ()
{
int i ; for ( i = 0; i < MaxTam ; i ++)
{
printf ( " \ n % d % c elemento : " ,i +1 ,167) ; scanf ( " % d " ,& lista [ i ]. chave ) ;
}

1

} void InsertionSort ( int tam ) { int i , j ;
TItem value ; for ( i = 1; i < tam ; ++ i ) { value . chave = lista [ i ]. chave ; for ( j = i - 1; j >= 0 && lista [ j ]. chave > value . chave ; ...
--j ) { lista [ j + 1] = lista [ j ]; lista [ j ] = value ;
}
}
}
void troca ( int i , int j )
{
TItem

Relacionados

  • Filme a ilha
    2815 palavras | 12 páginas
  • Técnicas de programação avançada
    18016 palavras | 73 páginas
  • Clp step 7300 apostila clp avançado
    22483 palavras | 90 páginas
  • Copia Fatal
    568 palavras | 3 páginas
  • Apostila clp avancado
    22549 palavras | 91 páginas
  • Coisa que me pedem
    1289 palavras | 6 páginas
  • Redes wan
    1304 palavras | 6 páginas
  • Produção de texto
    963 palavras | 4 páginas
  • medir
    567 palavras | 3 páginas
  • TRABALHO DE METODOLOGIA
    928 palavras | 4 páginas