Cálculo Numérico: Integração Numérica com Bubble Sort

1,876 views
1,749 views

Published on

Estimativa do tempo médio de execução do algoritmo de ordenação interna bubble sort através de métodos numéricos: Integração numérica e ainda o teorema do valor médio.

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,876
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cálculo Numérico: Integração Numérica com Bubble Sort

  1. 1. Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Departamento de Computação Cálculo Numérico Segundo Trabalho Prático Johnnatan Messias P. Afonso Rafaella Bicalho da Rocha Professor - José Álvaro Tadeu Ferreira Ouro Preto 21 de junho de 2010
  2. 2. Sumário 1 Denição do Problema 1 2 Modelagem Matemática 1 3 Solução Numérica 1 4 Obtenção dos Resultados 2 4.1 1a Regra de Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4.2 Aplicação do Teorema do Valor Médio . . . . . . . . . . . . . . . . . 3 4.3 O Resultado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 Análise dos Resultados 3 6 Bubble Sort 3 Lista de Figuras 1 Tabela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 Tabela dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Lista de Programas 1 Algoritmo BubbleSort . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2
  3. 3. 1 Denição do Problema Realizando testes com o método de ordenação BubbleSort obteve-se o seguinte resultado de tempo, em segundos, para as quantidades de elementos a serem orde- nados: Figura 1: Tabela Através dessa tabela de resultados deseja-se obter uma estimativa de tempo médio da execução do algoritmo. 2 Modelagem Matemática Como a função é contínua no intervalo fechado [a;b] tal que a= 0 e b= 200000, pode-se utilizar o método de integração numérica. 3 Solução Numérica Foi utilizado o método de integração 1a Regra de Simpson, uma vez que o inter- valo foi dividido em 8 partes de mesmo tamanho de passo 25000. Para calcular o tempo médio de execução do algoritmo precisaremos aplicar além da 1a Regra de Simpson, o Teorema do Valor Médio aplicado a Integrais. Sendo f é uma função contínua em [a,b], e de acordo com o Teorema do Valor Médio aplicado a Integrais, então existe um z(a,b), tal que: f(z) = 1 b − a b a f(x).dx (1) 1
  4. 4. 4 Obtenção dos Resultados Figura 2: Tabela dos Resultados 4.1 1 a Regra de Simpson 200000 0 f(x).dx (2) Para n = 8: h = b − a n (3) logo h = 25000 Pela 1a Regra de Simpson, temos: I = h 3 (Y0 + 4Y1 + 2Y2 + 4Y3 + 2Y4 + 4Y5 + 2Y6 + 4Y7 + Y8) (4) Considerando que: (Y0 + 4Y1 + 2Y2 + 4Y3 + 2Y4 + 4Y5 + 2Y6 + 4Y7 + Y8) = 8 i=0 Ci.Yi (5) 8 i=0 Ci.Yi = 5546, 22 (6) I = 25000 3 8 i=0 Ci.Yi = 46218500 (7) 2
  5. 5. 4.2 Aplicação do Teorema do Valor Médio Pelo Teorema do Valor Médio aplicado a Integrais, temos: f(z) = 1 200000 − 0 200000 0 f(x).dx (8) Onde f(z) é o tempo médio gasto para a execução do algoritmo. 4.3 O Resultado De acordo com os dados anteriores, temos que: 200000 0 f(x).dx = 46218500 (9) então, f(z) = 1 200000 − 0 ∗ 46218500 (10) Logo, f(z) = 231,09 ∼= 231, 1 segundos 5 Análise dos Resultados O resultado obtido é coerente com o tempo médio previsto para a ordenação de todos os elementos, uma vez que 231, 1 ∈ [0; 694, 78] 6 Bubble Sort BubbleSort é um simples método de ordenação que verica todas as posições do vetor a m de ordená-lo, comparando todos os elementos. Para esse trabalho utilizou-se o seguinte algoritmo em C: void BubbleSort ( TArray∗ pA) { int i , j ; TItem aux ; 5 for ( i =0; i pA−Size −1; i ++) { for ( j =1; jpA−Size −i ; j++) { i f (pA−P o s i t i o n s [ j ] . keypA−P o s i t i o n s [ j −1]. key ) 10 { aux = pA−P o s i t i o n s [ j ] ; pA−P o s i t i o n s [ j ]=pA−P o s i t i o n s [ j −1]; pA−P o s i t i o n s [ j −1]=aux ; } 15 } } } Programa 1: Algoritmo BubbleSort 3
  6. 6. Ainda é possível otimizá-lo bastando-se incluir uma variável trocaque veri- que se houve uma troca de posições dos elementos do vetor, diminuindo o tempo necessário para a execução do algoritmo bem como o número de comparações. Possui ordem de complexidade em número de comparações On2 , isto é: O(n) = n−2 i=0 n − i − 1 = n−2 i=0 n − n−2 i=0 i − n−2 i=0 1 = n2 − n 2 (11) [1] Na prática esse algoritmo não é comumente utilizado para ordenação de uma grande quantidade de elementos, uma vez que é muito lento para execução, por isso frequentemente, em computação, utiliza-se o método QuickSort. O QuickSort é o algoritmo de ordenação interna (Memória RAM) mais rápido que se conhece e em seu melhor caso possui ordem de complexidade n log(n), ou seja, O(n log(n)). [2] Referências [1] David Menotti. Algoritmos e Estruturas de Dados I: Ordenação I SelectSort, InsertSort, BubbleSort. 2009. [2] David Menotti. Algoritmos e Estruturas de Dados I: Ordenação III QuickSort. 2009. 4

×