Sei sulla pagina 1di 10

FACULDADE ANHANGUERA DE VALINHOS

ATPS Atividades Prticas Supervisi !adas Discip"i!a# C"assi$ica%& e Pes'uisa


Cincias da Computao Professor: Rodrigo Stein

Gabriel Barssi Garbuglio R.A 4 4!"!#"#! $uliana Ribeiro %iligoi R.A !&'!#' ( ' )urilo dos Santos *scobar R.A !&&#&#+#,,

VALINHOS ( SP )*+,

Su-ri

RELATRIO 1 PESQUISA DE DADOS.............................................................................................. pg. 3 CDIGO USADO................................................................................................................... pg. 5

RELATRIO 2 MTODOS DE ORDENAO .................................................................................... pg. 7

BIBLIOGRAFIA.......................................................................................................................... ...... pg. 10

RELAT.RIO + PES/UISA DE DADOS

0usca de -e"1 r dese-pe!1 c -putaci !a" 2 34t d Considerando os par-metros de testes definidos na A.PS/ foi poss01el identificar 2ue o mel3or m4todo de busca sem a ordenao dos dados 4 o linear com sentinela/ por4m se o 1alor procurado no esti1er no 1etor/ o tempo e a 2uantidade de testes reali5ados sero e6atamente iguais ao da busca linear/ pois a c3a1e ser7 locali5ada apenas no final da base de dados. 8 c7lculo de tempo foi reali5ado atra14s da 2uantidade de ciclos do processador 9cloc:;/ mas como a base utili5ada nos testes 4 pe2uena o processo 4 muito r7pido para reali5ar uma comparao precisa entre os algoritmos/ al4m de 2ue foi poss01el notar 2ue os 1alores definidos para busca no A.PS no esto dispon01eis ap<s a gerao dos n=meros aleat<rios e dessa forma os algoritmos de busca no locali5aro os 1alores o 2ue forara percorrer o 1etor at4 o final.

0usca 5i!ria 6 5usca "i!ear 6 5usca "i!ear c - se!ti!e"a Dese-pe!1 Ap<s a ordenao dos dados fica claro 2ue o mel3or m4todo de busca 4 a bin7ria como mostra a %igura '/ pois tanto o tempo 2uanto a 2uantidade de processamento 4 muito menor do 2ue as outras t4cnicas de busca. 8 principal ponto 4 se a ordenao da base de dados 4 1i71el para aplicar esse tipo de t4cnica/ pois dependendo do taman3o da base a ordenao pode se tornar muito lenta e e6igir muito processamento. A ordenao atra14s de algoritmos como bubblesort e seleo demonstraram bons resultados/ mas ainda assim e6igem mais processamento do 2ue as buscas em bases 2ue no foram ordenadas/ porem se a ordenao for reali5ada periodicamente ou no momento em 2ue os dados so inseridos a busca bin7ria torna>se 1i71el/ pois a locali5ao e o tempo de processamento so muito mais r7pidos do 2ue as demais t4cnicas.

.?P8 @* .*S.*

.A)AAB8 C*.8R

DEAA.?@A@* .*S.*S

Busca Finear Busca Finear com Sentinela Busca Bin7ria Bubble Sort Seleo

'.,,, '.,,, '.,,, '.,,, '.,,,

'.,,, '.,,, ( 44.(#" +#.&!"

Ap<s a reali5ao das baterias de testes foi poss01el concluir 2ue e6istem algoritmos de locali5ao e ordenao mais eficientes do 2ue outros/ por4m a aplicao e a utili5ao de cada um depende da situao e principalmente do taman3o da base de dados 2ue ser7 manipulada. Considerando os par-metros utili5ados nesses testes obser1amos 2ue o mel3or comportamento dos algoritmos de ordenao e seleo foram obtidos pelo m4todo seleo e a busca bin7ria/ mas isso no significa 2ue so os mel3ores para todas as situaGes/ pois todos possuem suas particularidades e deficincias.

C.DIGO CO3PLETO PARA USO DA 0ATERIA HI Aame: A.PS > Classificao e Pes2uisa @escription: Bateria de testes de busca linear/ linear com sentinela e bin7ria ordenao bubble sort e seleo IH Jinclude Jinclude Jinclude Jinclude Jdefine tempo ,,, Jdefine searc3Kp "& Jdefine searc3Ks ',,,,' HHprototipos das funGes 1oid bateriaKtestes9int tam/ int t;L 1oid linear9int n/ int t/ int IpKint/ double Ip;L 1oid linearKsentinela9int n/ int t/ int IpKint/ double Ip;L 1oid binaria9int n/ int t/ int IpKint/ double Ip;L 1oid bubblesort9int n/ int t/ int IpKint/ double Ip;L 1oid selecao9int n/ int t/ int IpKint/ double Ip;L double unif9long int Iseed/ double loM/ double 3ig3;L int inteirosKunif9long int Iseed/ int loM/ int 3ig3;L main9;N HHdeclarao de 1aria1eis int opO,/ tipoL M3ile 9opPO+;N sQstem9RclsR;L HHcabeal3o com os parametros de teste printf9RSn A.PS > ClassificaTcTco e Pes2uisa SnR/'!+/'(";L printf9R Sn U>>>>>>U>>>>>>>>U>>>>>U>>>>>>>>U>>>>>>>>>>>>U>>>>>>>>>>U>>>>>>>>>>>>>UR;L printf9R Sn V 8P V A V loM V 3ig3 V seed V A. Proc. V S. A. Proc. VR;L

printf9R Sn U>>>>>>U>>>>>>>>U>>>>>U>>>>>>>>U>>>>>>>>>>>>U>>>>>>>>>>U>>>>>>>>>>>>>UR;L printf9R Sn V ,' V ',, V , V ',,,,, V ' !4++4! ' V "& V ',,,,' VR;L printf9R Sn U>>>>>>U>>>>>>>>U>>>>>U>>>>>>>>U>>>>>>>>>>>>U>>>>>>>>>>U>>>>>>>>>>>>>UR;L printf9R Sn V , V ',,, V , V ',,,,, V ' !4++4! ' V "& V ',,,,' VR;L printf9R Sn U>>>>>>U>>>>>>>>U>>>>>U>>>>>>>>U>>>>>>>>>>>>U>>>>>>>>>>U>>>>>>>>>>>>>UR;L printf9R Sn V ,! V ',,,, V , V ',,,,, V ' !4++4! ' V "& V ',,,,' VR;L printf9R Sn U>>>>>>U>>>>>>>>U>>>>>U>>>>>>>>U>>>>>>>>>>>>U>>>>>>>>>>U>>>>>>>>>>>>>UR;L printf9R Sn V ,4 V ',,,,, V , V ',,,,, V ' !4++4! ' V "& V ',,,,' VR;L printf9R Sn U>>>>>>U>>>>>>>>U>>>>>U>>>>>>>>U>>>>>>>>>>>>U>>>>>>>>>>U>>>>>>>>>>>>>UR;L printf9RSnSn Selecione os parTcmetros de teste W ' > 4 X: R/'!';L scanf9RTdR/Yop;L if9op+;N printf9RSn 8pcao in1alida PR;L getc39;L Z brea:L Z Z Z HI>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Algoritmo ' [ Gerador de n=meros reais aleat<rios Gerador de distribuicao uniforme retorna um numero double 9real com longa preciso; na fai6a loM [ 3ig3/ou se\a/ WloM/3ig3X. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>IH double unif9long int Iseed/ double loM/ double 3ig3;N double unifKretL long int m/a/b/c/ :L double 1alueK,K'L m O '4&4"!#4&L a O '#",&L b O ' &&&!L c O "!#L : O IseedHbL Iseed O a I 9Iseed T b; > :IcL if 9Iseed

RELAT.RIO ) 37TODOS DE ORDENA89O 8 Duic: Sort no mel3or caso sempre escol3e o elemento mediano da sua lista de entrada como pi1]. 8 pior caso do Duic:sort \ustamente na pior escol3a do pi1]: um elemento e6tremo da lista 9no in0cio ou no ^nal;. .estes com entradas aleat<rias e pi1]s escol3idos aleatoriamente mostram 2ue a comple6idade do Duic:sort/ mesmo nestes casos/ se apro6ima muito do tempo de 8 9n log n;. I mel3or caso: 89n log n; I pior caso: 89n ; I caso m4dio: 89n log n; I Ao 4 est71el 8 )ergesort no mel3or caso 4 similar ao tempo do Duic:sort com pouco mais de 89log n;. Dual2uer 2ue se\a o caso ele sempre ter7 a comple6idade de ordem n log n. ?sso 4 pelo moti1o de 2ue o )ergesort independentemente em 2ue situao se encontra o 1etor/ ele sempre ir7 di1idir e intercalar. I mel3or caso: 89n log n; I pior caso: 89n log n; I caso m4dio: 89n log n; I *st71el 9?mplementado corretamente; 8 algoritmo de insero linear fa5 uma busca linear para encontrar a posio para fa5er a insero. Ao entanto/ uma 1e5 2ue o elemento 4 inserido numa se2uncia 2ue \7 est7 ordenada/ o ideal 4 usar uma pes2uisa bin7ria/ em 1e5 de uma busca linear. Considerando 2ue uma busca linear re2uer 89n; comparaGes no pior caso/ uma busca bin7ria re2uer apenas 89log n; comparaGes. I mel3or caso: 89n log n; I pior caso: 89n ; I caso m4dio: 89n ; I *st71el 8 algoritmo Duic:sort/ nos testes e6ecutados apresenta o maior n=mero de comparaGes e o menor n=mero de trocas. _ um algoritmo eficiente apesar do seu pior caso ser 89n ;. 8 )ergesort possui um pior caso 89n log n;/ no entanto utili5a mem<ria au6iliar e possui um alto consumo de mem<ria. $7 o ?nsero Bin7ria apresenta um pior caso 89n ;/ e mesmo apresentando um mel3or caso 89n log n; ainda sim 4 um algoritmo de insero. @essa forma 4 poss01el inferir 2ue o algoritmo Duic:sort 4 possi1elmente o mais indicado para di1ersas situaGes. 8 Comportamento do Duic:sort 4 demonstrado nas seguintes imagens.

9a; )el3or caso/ 2uando os dados de entrada so aleat<rios ou parcialmente ordenados e o pi1] 4 o registro do meio. 9b; Caso )4dio. 9c; Pior Caso/ ocorre 2uando o 1etor esta ordenado 9asc. ou desc.;. @essa forma o algoritmo ir7 particionar o arran\o com n elementos em arran\os sendo ' com n>' elementos e outro com apenas ' elemento/ diminuindo o problema em apenas ' elemento. Aesta etapa o desafio consiste em usar 17rios algoritmos de ordenao e medir o desempen3o de cada um deles com tabelas de dados. *ssas tabelas tero +,,/ +,,,/ +,,,, de taman3o/ cada uma com trs inst-ncias diferentes. 8 desafio pede para usarmos no1os 1alores para 2ue as funGes 2ue geram n=meros aleat<rios possam 1ariar de tabela para tabela. Para isso optamos pelos seguintes par-metros: Calores usados para gerar os n=meros de cada instancia @entro do ar2ui1o `atps@ata.3a podemos encontrar a funo `iniciar.abelas9;a 2ue ser7 respons71el por usar esses 1alores e preenc3er o total de no1e inst-ncias senda trs para cada taman3o de tabela. Ao e6ecutar o programa pela primeira 1e5 nos deparamos com a opo de rodar a 1erso '.,/ 2ue tem todo o conte=do da primeira etapa desse desafio ou a 1erso .,/ essa sim nosso ob\eti1o principal nesse momento. Pri-eira te"a d siste-a Ao escol3er a opo ., do sistema/ todas as inst-ncias foram automaticamente geradas e as tabelas esto dispon01eis para testes. Sendo assim 4 s< escol3er o algoritmo a ser usado. Ao e6emplo abai6o 1amos usar o 2uic:Sort como e6emplo: 3e!u para s a": rit- s de rde!a%& /uic;s rt se"eci !ad Com o tipo de algoritmo selecionado/ 1amos escol3er o tipo de dados para o teste. @e acordo com o desafio/ podemos testar o algoritmo com uma tabela com dados aleat<rios/ ascendentes ou descendentes. Camos escol3er @ados Aleat<rios/ nesse momento o programa ir7 en1iar para o algoritmo todas as trs instancias de cada tabela e nos dar os resultados/ como na pr<6ima imagem. Resu"tad d 'uic;S rt para a rde!a%& das ta5e"as Ap<s reali5ar teste com todos os algoritmos o grupo c3egou a concluso de 2ue/ mesmo com dados \7 ordenados de forma ascendente/ descendente ou aleat<rias os resultados foram bem pr<6imos. Fe1ando em conta 2ue todos os algoritmos so de ordenao/ pro1a1elmente em

um problema real a tabela a ser ordenada ser7 aleat<ria. Sendo assim os algoritmos com mel3or desempen3o foram 2uic:Sort e mergeSort. Ambos apresentaram resultados r7pidos e com menor 0ndice de comparaGes e trocas.

0I0LIOGRAFIA

Ap sti"a de A": rit- Estruturad $EA?8R/ $. ). R. S. @ispon01el em: b3ttps:HHdocs.google.comHopencidO,B6 dnBfQ et(Dd!doSl"'R:,')@Df I!tr du%& d "ivr te6t da discip"i!a de C"assi$ica%& e Pes'uisa 9d?C?AA?/ A01io. Pro\eto de Algoritmos: com implementao em Pascal e C. g ed. So Paulo: Pioneira .3omson Fearning. p. a (; Pes'uisa e- 3e-<ria Pri-aria d "ivr te6t da discip"i!a de C"assi$ica%& e Pes'uisa 9d?C?AA?/ A01io. Pro\eto de Algoritmos: com implementao em Pascal e C. g ed. So Paulo: Pioneira .3omson Fearning. p. '+! a '+&; Orde!a%& d "ivr te6t da discip"i!a de C"assi$ica%& e Pes'uisa 9d?C?AA?/ A01io. Pro\eto de Algoritmos: com implementao em Pascal e C. g ed. So Paulo: Pioneira .3omson Fearning. p. (+ a '4!;

Potrebbero piacerti anche