Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
1Activity
0 of .
Results for:
No results containing your search query
P. 1
TrabAlg

TrabAlg

Ratings: (0)|Views: 12|Likes:
Published by Vlad Hietala

More info:

Published by: Vlad Hietala on Nov 01, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

07/28/2013

pdf

text

original

 
UNIVERSIDADE FEDERAL DO PARANÁSETOR DE EDUCAÇÃO PROFISSIONAL E TECNOLOGICAFELICIANO PAULO KAVAGUSTAVO FERNANDES DA SILVALEOMAR MENEZES
ANALISE DE ALGORITMOS DE ORDENAÇÃO:INSERÇÃO, SHELL, QUICKSORT E MERGESORT.
Trabalho apresentado à disciplina de Algoritmos e Logica de ProgramaçãoII do curso de Tecnologia em Análisee Desenvolvimento de Sistemas, naUFPR, Prof. Luiz A. P. Neves.CURITIBA, OUTUBRO DE 2012.
 
1. INTRODUÇÂO
O objetivo desse trabalho é analisar alguns tipos de algoritmos de ordenação,que na proposta inicial eram o algoritmo Shell e o algoritmo Inserção. Conformecombinado com o Professor Neves, apresentamos quatro algoritmos de ordenação:Inserção, Shell, QuickSort e MergeSort. Ainda conforme combinado com o Professor Neves, não exporemos osalgoritmos usando pseudocódigo, somente a implementação em C dos mesmos.
 
2. ANALISE DOS ALGORITMOS
No mundo da computação, talvez as tarefas mais fundamentais eextensivamente analisadas sejam ordenação e pesquisa. Essas rotinas sãoutilizadas em praticamente todos os programas de banco de dados, bem comoem compiladores, interpretadores e sistemas operacionais.O objetivo principal de ordenar os dados geralmente é facilitar e acelerar oprocesso de pesquisa nesses dados.Ordenação
 
é o processo de arranjar um conjunto de informações semelhantesnuma ordem crescente ou decrescente. Especificamente, dada uma lista ordenada
de
elementos, então:
1
<= i 
<= ... <= i 
Muito embora a maioria dos compiladores forneça a função
qsort()
 
como parteda biblioteca padrão, devemos entender a ordenação por três razões. Primeiro,não é possível aplicar uma função generalizada como
qsort()
 
a todas as situações.Segundo, pelo fato de
qsort()
 
ser parametrizada para operar em uma variedadede dados, ela roda mais lentamente que uma ordenação semelhante que operasobre apenas um tipo de dado. (Generalização aumenta inerentemente o tempo deexecução devido ao tempo de processamento extra necessário para manipular osdiversos tipos de dados.) Finalmente, embora o algoritmo QuickSort (usado por 
qsort()
)
 
seja muito eficiente no caso geral, ele pode não ser a melhor ordenaçãopara situações especiais.Existem muitos algoritmos diferentes para cada método de ordenação. Cadaum deles tem seus méritos, mas os critérios gerais para avaliação de um algoritmosão:
• Em que velocidade ele pode ordenar as informações no caso médio?
 
Qual a
velocidade do seu melhor e pior casos?
• Esse algoritmo apresenta um comportamento natural ou não
-natural?
• Ele rearranja elementos com chaves iguais?
 Olhe, agora, atentamente para esses critérios. Evidentemente a velocidade emque um algoritmo particular ordena é de grande importância. A velocidade em queuma matriz pode ser classificada está diretamente relacionada com o número decomparações e o número de trocas que ocorrem, com as trocas exigindo maistempo. Uma comparação ocorre quando um elemento da matriz é comparado aoutro; uma troca ocorre quando dois elementos na matriz ocupam um o lugar dooutro. Algumas ordenações variam o tempo de ordenação de um elemento deforma exponencial e outras de forma logarítmica.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->