Análise de Algoritmos

Tamanho: px
Começar a partir da página:

Download "Análise de Algoritmos"

Transcrição

1 Aálise de Algoritmos Após estudar este capítulo, você deverá ser capaz de: hh Defiir e usar os seguites coceitos: Aálise de algoritmo Complexidade Custo temporal Custo espacial Pior caso Melhor caso Caso médio Regra da soma Regra do produto Aálise assitótica Custo costate Custo liear Custo quadrático Custo cúbico 237 Custo poliomial Custo expoecial Custo logarítmico Custo liear logarítmico Custo fatorial Relação de recorrêcia Árvore de recursão hh Comparar as otações ó, ômega e teta hh Avaliar o custo de um algoritmo usado as otações ó, ômega e teta hh Demostrar teoremas referetes às otações ó, ômega e teta hh Explicar por que o pricipal iteresse em aálise de algoritmos se cocetra o pior caso hh Apresetar exemplos de algoritmos com custos limitados por fuções comus em aálise de algoritmos hh Descrever regras práticas usadas em aálise temporal de algoritmos para cada tipo de istrução hh Explicar quado a aálise de custo espacial de um algoritmo se faz ecessária hh Escrever a relação de recorrêcia associada a um algoritmo recursivo hh Descrever a abordagem de cojectura e prova para resolução de relações de recorrêcia hh Costruir uma árvore de recursão para uma dada relação de recorrêcia objetivos

2 238 Capítulo 6 Aálise de Algoritmos A eficiêcia (ou desempeho) de um programa é medida em termos do espaço de armazeameto e do tempo que ele utiliza para realizar uma tarefa. Mais precisamete, um programa é eficiete quado ele é executado utilizado o meor espaço de memória possível o meor itervalo de tempo. A eficiêcia de um programa depede de iúmeros fatores, detre os quais: [1] O hardware o qual o programa é executado, o que iclui memórias, CPU etc. [2] O sistema operacioal sob a supervisão do qual o programa é executado. [3] A liguagem de programação utilizada para codificar o programa-fote. [4] As estruturas de dados utilizadas pelo programa (i.e., como os dados maipulados pelo programa são orgaizados). [5] A complexidade de cada algoritmo que o programa implemeta. [6] A competêcia do programador que codificou o programa. Se um programa deve ser costruído para ateder uma determiada plataforma que abraja os fatores de [1] a [3] acima, ão há muito que se possa fazer para melhorar sua eficiêcia. Neste livro, se está iteressado em ateder os fatores de [4] a [6] eumerados acima. Obviamete, como o tema pricipal deste livro são estruturas de dados, aqui serão apresetadas diversas maeiras as quais dados podem ser orgaizados. Muitos problemas com os quais um programador se depara frequetemete possuem vários algoritmos fucioalmete equivaletes. Dois algoritmos são fucioalmete equivaletes quado, pelo meos em pricípio, obtêm os mesmos resultados para um mesmo problema (v. Seção 5.3). Mas o fato de dois algoritmos serem fucioalmete equivaletes ão quer dizer que eles sejam equivaletes em termos de eficiêcia. Ao cotrário, existem algoritmos que são fucioalmete equivaletes e que, ao mesmo tempo, divergem bastate em termos de eficiêcia. Este livro apresetará diversos exemplos de tais algoritmos. Este capítulo é dedicado ao estudo da ierete complexidade de algoritmos, que é um assuto da maior relevâcia em programação e está associada a como um algoritmo se comporta quado o tamaho dos dados de etrada cresce arbitrariamete. Esse assuto ão deve ser cofudido com eficiêcia de programas, que, coforme foi visto, depede de hardware, sistema operacioal etc. Quer dizer, embora, este livro, muitos algoritmos sejam apresetados em formato de programas ou trechos de programa em C, aálise de algoritmos deve ser praticada ates mesmo de um algoritmo ser codificado (i.e., ser trasformado em programa). 6.1 Complexidade de Algoritmos 6.1 Complexidade de algoritmo é a taxa de crescimeto dos recursos que um algoritmo requer com relação ao tamaho dos dados que ele processa. Tipicamete, os recursos cosiderados são o tempo e o espaço de armazeameto despedidos pelo algoritmo para processar os dados de etrada. Resumidamete, complexidade de algoritmo é a taxa com a qual o armazeameto utilizado ou tempo de execução cresce em fução do tamaho dos dados de etrada. A complexidade de um algoritmo é também deomiada seu custo de processameto. A complexidade de um algoritmo medida em termos de tempo de processameto é deomiada custo temporal, equato que a complexidade medida em termos de espaço adicioal ocupado pelos dados que um algoritmo processa é deomiada custo espacial. O custo temporal de um algoritmo pode ser expresso em termos do úmero de operações usadas pelo algoritmo quado o problema apreseta um determiado tamaho. As operações usadas para medir custos podem ser operações elemetares, tais como soma, multiplicação e comparação de iteiros.

3 6.2 Aálise Assitótica 239 A aálise de algoritmos permite avaliar a eficiêcia de um algoritmo de modo idepedete de hardware e software; ou seja, um algoritmo sob aálise sequer precisa ser implemetado. Aálise de custo espacial tipicamete ocorre quado o algoritmo usa espaço adicioal que, de algum modo, é proporcioal ao tamaho dos dados de etrada. Por exemplo, muitos algoritmos de ordeação de arrays executam suas tarefas usado os próprios arrays recebidos como etrada (i.e., ordeação i loco). Por outro lado, algus algoritmos de ordeação usam espaço adicioal proporcioal ao tamaho do array a ser ordeado. Tato um caso quato o outro, um algoritmo pode usar algumas poucas variáveis auxiliares. Essas variáveis auxiliares ão são relevates para a aálise de custo espacial de um algoritmo. No caso de ordeação, apeas algoritmos que ão são i loco precisam ser aalisados em termos de uso de espaço. Normalmete, o custo espacial de um algoritmo é meos sigificativo do que seu custo temporal porque muitos algoritmos que processam as estruturas de dados usadas aqui ão usam espaço adicioal (v. Seção 6.8). Levar em cosideração custo temporal e espacial de um algoritmo é deveras importate em programação. Afial, é ecessário saber se o algoritmo levará microssegudos, horas, dias ou ceteas de aos para apresetar uma solução (v. Tabela 6 3). Também é preciso saber qual é a quatidade de memória que um algoritmo requer para produzir uma solução. Efim, aálise de algoritmos serve para classificar algoritmos como adequados ou ão adequados. Assim cosidera-se um algoritmo eficiete quado ão se cohece ehum outro fucioalmete equivalete a ele e que possua meor custo. 6.2 Aálise Assitótica 6.2 Como foi discutido acima, a taxa absoluta de crescimeto do tempo de execução de um programa depede do compilador usado para costruí-lo, bem como do hardware utilizado para executá-lo. Por isso, a aálise de algoritmos cocetra-se a proporcioalidade etre o tempo ou o espaço gasto pelo programa e o tamaho da etrada em termos de alguma fução cohecida. Em Matemática, aálise assitótica é uma técica de aproximação de fuções. Um otável exemplo de uso dessa técica é a famosa fórmula de Stirlig para aproximação de fatorial:! 2p æ è ç ö eø Em programação, pricípios de aálise assitótica são utilizados para avaliação de custos de algoritmos em termos de tempo e espaço gastos para realização de suas respectivas tarefas. Essa avaliação baseia-se a ideia de que à medida que o tamaho dos dados de etrada de um problema cresce, o custo computacioal do algoritmo que o resolve estabiliza-se uma fução de proporcioalidade simples relacioada com alguma fução matemática cohecida (p. ex., fução liear, quadrática, logarítmica etc.). Como foi visto a itrodução deste capítulo, o tempo gasto a execução de um programa depede de diversos fatores, de modo que ão é possível descrever o custo temporal de execução de um algoritmo em uidades de tempo usuais (p. ex., segudos). Em vez disso, fala-se em proporcioalidade (p. ex., o tempo de execução de tal algoritmo é proporcioal a 2, sedo o tamaho dos dados de etrada). Nesse caso, a costate de proporcioalidade ão é estipulada, visto que ela depede dos diversos fatores já mecioados. O tamaho de etrada de um algoritmo é um úmero iteiro positivo que determia o tamaho dos dados de etrada que o algoritmo processa. Tipicamete o úmero de istruções que o algoritmo executa é proporcioal a esse valor (v. abaixo). O tamaho de etrada de um algoritmo pode ser o úmero de ites que ele processa cada vez que é executado. Por exemplo, o tamaho da etrada de um algoritmo que ordea um array

4 240 Capítulo 6 Aálise de Algoritmos é exatamete o tamaho (i.e., o úmero de elemetos) desse array. O tamaho de etrada de um algoritmo também pode ser determiado pelo úico valor que ele recebe como etrada. Por exemplo, o tamaho de etrada de um algoritmo que calcula o fatorial de um úmero é exatamete. O custo de um algoritmo é medido como uma fução do tamaho dos dados que ele processa. Isto é, se o tamaho dos dados (p. ex., o úmero de elemetos de um array) for, seu custo é associado a alguma fução f(), cujo domíio é o cojuto dos úmeros aturais e cuja imagem é o cojuto dos úmeros reais ão egativos. Em aálise de algoritmos, a descrição precisa dessa fução ão é importate. O que realmete importa é determiar a taxa (ou ordem) de crescimeto de tal fução com relação a. Por exemplo, quado o valor de é duplicado, o que ocorre com f()? Será que o valor de f() também duplica ou será que ele quadruplica? Em última istâcia, a taxa de crescimeto de um algoritmo prevê seu comportameto para etradas arbitrariamete grades. Aálise assitótica serve para comparar algoritmos fucioalmete equivaletes que cocorrem etre si (como os algoritmos de busca e ordeação que serão apreciados o Volume 2) e também para prever o desempeho de um dado algoritmo mesmo que ele ão teha competidor. Por exemplo, todos os algoritmos cohecidos para resolução do problema das torres de Haói (v. Seção 4.8.1) possuem os mesmos custos e ela dita que eles são impraticáveis para etradas relativamete grades (p. ex., quado o úmero de discos é igual a 20). A resolução de problemas dessa atureza utilizado algoritmos excede a capacidade de qualquer plataforma computacioal. Existem algoritmos que, apesar de curtos, são muito difíceis de aalisar, mas a maioria dos algoritmos apresetado este livro e em outros textos sobre Estruturas de Dados são relativamete fáceis de aalisar. Portato ão se deixe itimidar pelas aparêcias do formalismo que será apresetado a seguir. 6.3 Notações Ó, Ômega e Teta 6.3 Uma otação matemática, deomiada otação ó grade (ou, simplesmete, otação ó), é usada para expressar custos de algoritmos utilizado aálise assitótica. Essa otação usa fuções cujo domíio é o cojuto dos úmeros aturais e a imagem é o cojuto dos úmeros reais ão egativos. A variável utilizada essas fuções é, tipicamete, deomiada e represeta um tamaho de etrada. A otação ó usa essas fuções para estabelecer uma ordem de magitude para o crescimeto temporal e espacial de algoritmos. Defiição 6.1: Uma fução T() é O(f()) se e somete se existem costates c 0 e 0, sedo c 0 > 0 e 0 0 e tais que T() c 0 f() para todo 0. Em liguagem mais simples, a Defiição 6.1 pode ser parafraseada como: se, para valores suficietemete grades de, os valores de T forem meores do que aqueles de um múltiplo de f (i.e., c 0 f ), etão T é da ordem de, o máximo, f [i.e., T() é O(f())]. A Defiição 6.1 pode aida ser iterpretada da seguite maeira: T() é O(f()) se e somete se T() tora- -se, a partir de um determiado poto (i.e., quado 0 ), proporcioal a f(). A partir desse poto, é suficietemete grade para fazer com que T() estabilize-se uma taxa de crescimeto assitótico determiada por f(). Iformalmete, quado se diz que T() é O(f()), sabe-se que f() é um limite superior para a taxa de crescimeto de T(). A Figura 6 1 ilustra a relação etre duas fuções reais T() e f() quado T() é O(f()). Nessa figura, a porção tracejada do gráfico de T() é aquela que satisfaz T() < c 0 f(). Na comuidade de programação, a seteça matemática T() é O(f()) pode ser lida de diversas maeiras. Escolha a sua adequadamete: T() é da ordem de f() embora bastate utilizada, essa afirmação é pobre em precisão semâtica

5 6.3 Notações Ó, Ômega e Teta 241 T() é limitada por f() essa afirmação é pobre porque ão especifica se o limite provido por f() é superior ou iferior T() é ó de f() essa afirmação ão é muito precisa, mas ão é completamete má, pois, apesar de também existir otação ó pequeo, essa otação raramete é usada em aálise de algoritmos T() é ó grade de f() essa afirmação é perfeita f() é limite superior de T() afirmação é perfeita f() é a cota assitótica superior de T() afirmação é perfeita c 0 f() T() Tempo de processameto T() c 0 f() T() < c 0 f() para > 0 0 Figura 6 1: Iterpretação Gráfica de Custo Ó Frequetemete, a otação ó grade é usada de modo icorreto. A seguir, algus exemplos de uso abusivo da otação ó grade: T() O(f()). O uso da otação ó grade está icorreto porque o sigificado do símbolo já está implícito a Defiição 6.1. T() O(f()). O uso do símbolo é aida pior do que o símbolo porque ão faz jus à Defiição 6.1. T() = O(f()). No setido usual de igualdade, esta expressão está icorreta, pois a Defiição 6.1 ão diz respeito a igualdade. Quer dizer, a otação T() = O(f()) é cosiderada abusiva, mas, mesmo assim, é largamete utilizada. Por meio de simbolismo matemático, a otação ó grade pode ser usada corretamete das seguites maeiras: T() é O(f()). T() O(f()). O uso do símbolo é perfeitamete aceitável, pois O(f()) defie um cojuto de fuções. Exemplo 6.1 Mostre que se T() = , etão T() é O( 4 ). Solução: Para demostrar essa afirmação, deve-se propor um valor para a costate c 0 da Defiição 6.1 e tetar ecotrar um valor de 0 tal que, para valores de maiores do que 0, a desigualdade c 0 4 tore-se válida. Note que o valor de c 0, ão pode ser meor do que ou igual a zero, pois, como é um úmero atural, se c 0 for um úmero egativo ou zero, essa desigualdade jamais será satisfeita. Portato pode-se começar com o meor valor possível de c 0, que é 1. A procura pelo valor 0 que tora a desigualdade válida pode ser realizada usado o artifício mostrado a seguir:

6 242 Capítulo 6 Aálise de Algoritmos T() = c 0 f() = c 0 4 = 4 Satisfaz a desigualdade? Não Não Sim Evidetemete, o fato de se ter mostrado que quado = 3 ão sigifica dizer que essa desigualdade seja verdadeira quado > 3. Uma prova rigorosa de que esse fato realmete é verdadeiro pode ser obtida por meio de idução matemática fiita (v. Apêdice B). Deve-se observar que O(f()) descreve a coleção de todas as fuções para as quais existem as costates c 0 e 0 que toram válida a desigualdade T() c 0 f(). Por exemplo, do mesmo modo que se afirmou que T() = é O( 4 ), se poderia ter afirmado que T() é O( 3 ), T() é O( 15 ), T() é O(2) etc. Esses fatos revelam uma debilidade da otação ó grade: quado se diz que T() é O(f()) ada é iformado com relação à proximidade da fução f() com relação à fução T(). Exemplo 6.2 Mostre que a fução T() = é O( 2 ). Solução: Para demostrar essa afirmação, cosidere c 0 = 6 e 0 = 4 e mostre que , para 4 (verifique isso). É importate salietar que a aálise assitótica de algoritmos é muito pouco iformativa com respeito ao tempo real com que um dado algoritmo será executado. Por exemplo, dois algoritmos fucioalmete equivaletes podem ter custo temporal O(1), mas isso ão sigifica que, para uma dada etrada, eles serão executados o mesmo itervalo de tempo. Não se deve esquecer que aálise assitótica é válida para comparar algoritmos apeas quado o tamaho da etrada se tora suficietemete grade. Exemplo 6.3 Mostre que 2 ão é O(). Solução: A prova será feita por redução ao absurdo (ou por cotradição). Supoha que 2 seja O(). Nesse caso, existem costates c 0 > 0 e 0 0 tais que 2 c 0 quado > 0. Seja um úmero iteiro positivo tal que > c 0 e > 0. Etão, tem-se que: > c 0 > c 0 2 > c 0 Assim existe um úmero iteiro > 0 tal que 2 > c 0, o que cotradiz a hipótese. Essa cotradição mostra que 2 ão pode ser O(). Exemplo 6.4 Apresete uma estimativa ó grade para a fução matemática!, defiida como:! = Solução: Cada termo do produto a defiição de! é meor do que ou igual a. Logo:! = = Portato! é O( ), cosiderado c 0 = 1 e 0 = 1. Exemplo 6.5 Mostre que log é O( 2 ). Solução: Quado > 1, log < = 2. Logo, cosiderado c 0 = 1 e 0 = 1, tem-se que log é O( 2 ).

7 6.3 Notações Ó, Ômega e Teta 243 Não custa lembrar que estimativas que usam otação ó apresetam apeas limites superiores. Por exemplo, ão é correto dizer que um algoritmo é ieficiete porque ele apreseta custo O( 5 ) porque um algoritmo com custo O() também satisfaz essa estimativa. Assim uma otação que apresete limites iferior e superior se faz ecessária. Defiição 6.2: T() é Ω(f()) se e somete se existem costates c 0 e 0, sedo c 0 > 0, 0 0 e tais que T() c 0 f() para todo 0. A seteça T() é Ω(f()) é lida como: T() é ômega (grade) de f() ou f() é limite iferior de T(). Trocado em miúdos, a Defiição 6.2 pode ser iterpretada como: se, para valores suficietemete grades de, os valores de T são maiores que aqueles de um múltiplo de f (i.e., c 0 f ), etão T é da ordem de, o míimo, f [i.e., T() é Ω(f())]. A Figura 6 2 ilustra a relação etre duas fuções reais T() e f() quado T() é Ω(f()). Nessa figura, a porção tracejada do gráfico de T() é aquela que satisfaz T() > c 0 f(). T() c 0 f() Tempo de processameto c 0 f() T() T() > c 0 f() para > 0 0 Figura 6 2: Iterpretação Gráfica de Custo Ômega Exemplo 6.6 Mostre que a fução T() = é Ω( 2 ). Solução: Cosidere 0 = 0 e c 0 = 1 e mostre que , para 0. Etão, de acordo com a Defiição 6.2, é Ω( 2 ). Exemplo 6.7 Mostre que a fução T() = é Ω(). Solução: Novamete, cosiderado-se 0 = 0 e c 0 = 1, pode-se demostrar que , para 0. Assim, em cosoâcia com a Defiição 6.2, é Ω(). Como os dois últimos exemplos ilustram, a otação ômega padece do mesmo problema da otação ó. Quer dizer, quado se afirma, por exemplo, que T() é Ω( 5 ), pode-se facilmete provar que T() também é Ω( 3 ), Ω( 2 ), Ω() e assim por diate. Novamete, a prática, a fução mais útil é aquela mais próxima de T() [i.e., a fução que represeta o maior limite iferior de T()]. Por isso, a otação teta se faz ecessária. Defiição 6.3: T() é θ(f()) se e somete se T() é O(f()) e T() é Ω(f()).

8 244 Capítulo 6 Aálise de Algoritmos A seteça T() é θ(f()) é lida como: T() é teta grade de f() ou f() é limite estrito de T(). A Defiição 6.3 pode ser parafraseada como: se, para valores suficietemete grades de, os valores de T são limitados iferiormete e superiormete por valores múltiplos de f (i.e., se os valores de T estão etre c 0 f e c 1 f ), etão T é da ordem de f [i.e., T() é θ(f())]. A otação teta é usada para estimar a ordem de crescimeto temporal ou espacial de um algoritmo e é mais precisa do que as otações ó e ômega, pois estima um limite iferior e outro superior. Apesar disso, muitas vezes, por egligêcia, a otação teta ão é mecioada explicitamete em aálise de algoritmos. Nessa situações, quado se faz referêcia à otação ó, a verdadeira iteção é referir-se à otação teta. A Figura 6 3 ilustra a relação etre duas fuções reais T() e f() quado T() é θ(f()). Nessa figura, a porção tracejada do gráfico de T() é aquela que satisfaz as relações T() > c 0 f() [i.e., T() é Ω(f())] e T() < c 1 f() [i.e., T() é O(f())]. c 1 f() T() Tempo de processameto c 0 f() T() > c 0 f() para > 0 T() < c 1 f() para > 0 0 Figura 6 3: Iterpretação Gráfica de Custo Teta O uso de diagramas de Ve pode facilitar o etedimeto das três otações as relações que elas apresetam etre si, como mostra a Figura 6 4. Exemplo 6.8 Mostre que a fução T() = é θ( 2 ). Solução: De acordo com o Exemplo 6.2, T() é O( 2 ) e de acordo com o Exemplo 6.6, T() é Ω( 2 ). Portato, de acordo com a Defiição 6.3, T() é θ( 2 ). Existem aida as otações ó pequeo, ômega pequeo e teta pequeo, mas essas otações raramete são usadas em aálise de algoritmos. Assim, em ome da simplicidade liguística, este livro, otação ó é o mesmo que otação ó grade, otação teta é o mesmo que otação teta grade e otação ômega é o mesmo que otação ômega grade. Resumido, a otação ó defie uma fução que é limite superior de outra, mas ada é iformado com respeito à proximidade etre as duas fuções. Assim, como foi visto, é correto dizer que, se T() = , etão T() é O( 3 ), T() é O( 15 ), T() é O(2 ) etc. Desse modo, a otação ó ão é muito útil. De modo semelhate, a otação ômega refere-se ao limite iferior de uma fução e também ão é muito iformativa. Por exemplo, cosiderado-se a mesma fução T() acima, pode-se dizer que T() é Ω(), T() é Ω(log ), T() é Ω( 1/2 ) etc. Por outro lado, a otação teta refere-se ao limite estrito de uma fução e, portato, ão sofre com

9 6.3 Notações Ó, Ômega e Teta 245 a frouxidão que aflige as otações ó e ômega. Por exemplo, pode-se dizer que, se T() = , etão T() é θ( 2 ) mas ão é correto afirmar que T() é θ( 3 ). log log log log (a) Fuções com Custo O( 2 ) (b) Fuções com Custo Ω( 2 ) Θ( 2 ) log log log log (c) Fuções com Custo Θ( 2 ) = O( 2 ) Ω( 2 ) Figura 6 4: Relação etre Notações Ó, Ômega e Teta Usado Diagramas de Ve As otações ó, ômega e teta são úteis porque, frequetemete, a fução T(), que represeta o custo de um algoritmo é complicada, mas ecotrar uma fução f() tal que T() seja O(f()), Ω(f()) ou θ(f()) é relativamete mais simples. Exemplo 6.9 Mostre que T() = é θ( 4 ). Solução: Para > 0, tem-se que Portato, cosiderado-se 0 = 0 e c 0 = 2, tem-se que T() é Ω( 4 ). Agora, para > 1, = Logo, cosiderado-se 0 = 1 e c 1 = 10, tem-se que T() é O( 4 ). Como T() é Ω( 4 ) e T() é O( 4 ), etão T() é θ( 4 ). Teorema 6.1: f() é θ(g()) se e somete se g() é θ(f()). O Teorema 6.1 quer dizer que se f() é θ(g()), etão f() e g() são assitoticamete equivaletes; ou seja, tato f() é limite estrito de g() quato g() é limite estrito de f(). Corolário 6.1: f() é θ(g()) se e somete se f() é O(g()) e g() é O(f()). Exemplo 6.10 Mostre que 4 é O( ). Solução: No Exemplo 6.9, mostrou-se que é θ( 4 ). Logo, de acordo com o Corolário 6.1, 4 é O( ). Corolário 6.2: f() é θ(g()) se e somete se f() é Ω(g()) e g() é Ω(f()).

10 246 Capítulo 6 Aálise de Algoritmos Exemplo 6.11 Mostre que 4 é Ω( ). Solução: No Exemplo 6.9, mostrou-se que é θ( 4 ). Logo, de acordo com o Corolário 6.2, 4 é Ω( ). Exemplo 6.12 Mostre que 2 ão é θ(). Solução: De acordo com o Corolário 6.1, se 2 é θ(), etão 2 é O(). Mas, como foi provado o Exemplo 6.3, 2 ão é O(). Logo 2 ão pode ser θ(). Teorema 6.2: Supoha que a 0, a 1,..., a k sejam úmeros reais, com a k 0. Etão, tem-se que: T() = a k k + a k 1 k a 1 + a 0 é θ( k ). Exemplo 6.13 Mostre que T() = é θ( 4 ). Solução: Esse é o mesmo Exemplo 6.9, mas, agora, a solução desse problema pode ser obtida imediatamete por meio do Teorema 6.2. Exemplo 6.14 Mostre que o seguite somatório é θ( 2 ): Solução: No Apêdice B, mostra-se que: i = i= 1 + i = ( 1) 2 i= 1 Mas, com um pouco de maipulação algébrica, obtém-se: ( + 1) = Logo, de acordo com o Teorema 6.2, tem-se que o referido somatório é θ( 2 ). Algus julgam útil utilizar o seguite artifício para memorizar os sigificados das otações ó, ômega e teta: A letra grega ômega (Ω) possui dois traços horizotais a parte iferior. Portato a otação ômega grade defie um limite iferior. A letra grega teta (θ) possui um traço horizotal em sua parte cetral. Assim a otação teta grade defie um limite cetral (i.e., etre dois limites). A letra romaa ó (O) possui traço a parte superior em algus mauscritos. Logo a otação ó grade defie um limite superior. (Esse último argumeto é um tato forçado, mas esse é apeas um artifício de memorização.) A Tabela 6 1 compara as três otações apresetadas este capítulo.

11 6.4 Casos Melhor, Pior e Mediao 247 Notação Expressão Iterpretação Ó Ômega Teta T() é O(f()) T() é Ω(f()) T() é θ(f()) O custo temporal ou espacial represetado pela fução T() é, o máximo, proporcioal a f(), quado se tora suficietemete grade. Em outras palavras, o tempo (ou espaço adicioal) de execução ão cresce mais rapidamete do que f(). O custo temporal ou espacial represetado pela fução T() é, o míimo, proporcioal a f(), quado se tora suficietemete grade. Em outras palavras, o tempo (ou espaço adicioal) de execução ão cresce mais letamete do que f(). O custo temporal ou espacial represetado pela fução T() é proporcioal a f(), quado se tora suficietemete grade. Em outras palavras, o tempo (ou espaço adicioal) de execução cresce à mesma taxa que f(). Tabela 6 1: Comparação etre as Notações Ó, Ômega e Teta 6.4 Casos Melhor, Pior e Mediao 6.4 O desempeho de um algoritmo varia ão apeas de acordo com a quatidade de dados que ele processa, como também varia de acordo com a qualidade desses dados. Supoha, por exemplo, que o problema em questão seja a ordeação de um array de iteiros em ordem crescete. Coforme será visto o Volume 2, existem diversos algoritmos diferetes, mas fucioalmete equivaletes, capazes de realizar essa tarefa. É ituitivo supor esse exemplo que, quato maior for o úmero de elemetos do array (i.e., o tamaho dos dados de etrada), maior será o tempo gasto por qualquer algoritmo de ordeação para processar o array (i.e., ordeá-lo). De fato, essa ituição correspode à realidade, mas a taxa de crescimeto etre esses algoritmos de ordeação varia drasticamete. Por outro lado, a relação de ordem origial etre os elemetos do array a ser ordeado (i.e., a qualidade dos dados de etrada) também ifluecia o desempeho de um algoritmo de ordeação. Agora a ituição pode idicar que quato mais previamete ordeado for um array a ser ordeado, melhor será o desempeho do algoritmo que irá ordeá-lo. Porém essa ituição falha, pois existem algoritmos de ordeação que apresetam melhor desempeho quado os dados a ser ordeados estão completamete fora de ordem. Em aálise de algoritmos, a qualidade dos dados é classificada em três casos: melhor, pior e médio: Melhor caso é uma propriedade dos dados de etrada relativa a um algoritmo específico que resulta o melhor custo temporal ou espacial do algoritmo. Isto é, a melhor cofiguração dos dados para um algoritmo é aquela que faz com ele apresete seu melhor desempeho. Por exemplo, o melhor caso para o algoritmo de ordeação Bubble Sort (v. Seção ) ocorre quado os dados a ser ordeados já estão quase ordeados. Isso pode parecer óbvio, mas, por icrível que possa parecer, em sempre esse é o melhor caso para outros algoritmos de ordeação. Normalmete, é relativamete trivial determiar qual é o melhor caso de um algoritmo. Pior caso é uma propriedade dos dados de etrada que resultam o pior custo do algoritmo que os processam. Em outras palavras, pior caso de um algoritmo correspode a um cojuto de dados de etrada para os quais o algoritmo exibe seu pior desempeho. Tal caso possui propriedades que impedem o algoritmo de fucioar eficietemete. Por exemplo, o pior caso para o algoritmo de ordeação Bubble Sort (v. Seção ) ocorre quado os dados a ser ordeados estão totalmete fora de ordem. O pior caso de etrada para um algoritmo é ormalmete fácil de ser idetificado.

12 248 Capítulo 6 Aálise de Algoritmos Caso médio (ou mediao) é uma propriedade dos dados de etrada obtida por meio do cálculo de uma média de custo do algoritmo quado ele processa todos os cojutos possíveis de dados. Ou seja, o caso médio de etrada é associado ao úmero médio de operações ecessárias para resolver um problema calculado sobre todas as possíveis etradas desse problema que teham um determiado tamaho. Na prática, muitas vezes, é difícil determiar com precisão o que costitui um caso médio de etrada e, assim, tora-se complicado aalisar o comportameto de um algoritmo sob essa circustâcia. Uma simplificação frequetemete utilizada para cálculo de custo de caso médio cosiste em cosiderar equiprováveis todas as etradas de dados. Etão, determia-se o úmero de operações executadas para cada etrada, somam-se esses custos e divide-se pelo úmero total de etradas. Mas, esse raciocíio só se aplica quado a probabilidade de ocorrêcia de todas as etradas é a mesma, o que em sempre é o caso. Assim, tipicamete, determiar o sigificado do caso médio de etrada ão é uma tarefa trivial [1]. Exemplo 6.15 A fução escrita em C apresetada a seguir ecotra o úmero de ocorrêcias de um determiado valor um array de iteiros. Quais são os casos pior, melhor e médio dos dados para essa fução? it Ocorrecias(cost it ar[], it tam, it um) it i, ocorr = 0; for (i = 0; i < tam; ++i) if (ar[i] == um) ++ocorr; retur ocorr; Solução: (a) Neste problema, qualquer que seja o caso de etrada cosiderado, todos os elemetos do array precisam ser examiados. Portato os três casos são equivaletes e o custo temporal do algoritmo é θ() os três casos (v. Seção ). Exemplo 6.16 Qual é (a) o pior caso, (b) o melhor caso e (c) o caso mediao de um algoritmo que verifica se um determiado valor iteiro se ecotra armazeado um array de elemetos iteiros. Solução: Este exemplo é parecido com o Exemplo 6.15, mas agora o que se deseja saber apeas é se o valor em questão ocorre ou ão um array, de modo que em sempre todos os elemetos do array precisam ser examiados. Assim o pior caso desse algoritmo ocorre quado o valor procurado é o último elemeto do array ou ele ão se ecotra o array [o custo temporal desse caso é θ() v. Seção ]. Por outro lado, o melhor caso acotece quado o valor procurado é o primeiro elemeto do array [esse caso, o custo temporal é θ(1) v. Seção ]. Ituitivamete, o caso mediao ocorre quado o algoritmo examia, em média, metade dos elemetos do array [aqui, o custo temporal é ovamete θ()] [2]. É importate salietar que aquilo que costitui pior caso de etrada para um algoritmo pode ser cosiderado melhor caso para outro algoritmo fucioalmete equivalete e vice-versa. Também é comum ter-se um [1] Do poto de vista formal de Estatística, o custo médio de um algoritmo é seu custo médio esperado, também cohecido como esperaça matemática ou expectâcia. Esse custo represeta aquele que é esperado quado o algoritmo é aplicado muitas vezes sobre os mesmos dados de etrada. Se todas essas aplicações tiverem a mesma probabilidade, o custo esperado será a média aritmética (v. Exemplo 6.15). [2] A aálise formal do caso mediao é um tato complicada e será apresetada o Volume 2.

13 6.5 Fuções Comus em Aálise de Algoritmos 249 algoritmo para o qual ão haja distição etre casos (i.e., o custo temporal ou espacial do algoritmo idepede da cofiguração dos dados de etrada, como mostra o Exemplo 6.15). Muitas vezes, avaliar um algoritmo cosiderado seu desempeho o melhor caso ão é muito frutífero, pois a maioria dos algoritmos fucioalmete equivaletes apresetam desempehos equivaletes quado o melhor caso é levado em cosideração. Assim, esse caso, ão se deve esperar que algum algoritmo prevaleça com relação a outro, de modo que, raramete, cosiderar o melhor caso serve para comparar algoritmos. Apesar disso, existem circustâcias as quais o melhor caso de um algoritmo é levado em cosideração em sua aálise. Por outro lado, levar o pior caso em cosideração a aálise de um algoritmo garate sempre que o algoritmo ão terá desempeho pior do que aquele determiado durate sua aálise. 6.5 Fuções Comus em Aálise de Algoritmos 6.5 Existem muitas classes de complexidade algorítmica que aparecem com frequêcia em aálise de algoritmos e estruturas de dados. Algoritmos podem ser classificados de acordo com seus custos temporais ou espaciais, e a Tabela 6 2 apreseta classes de crescimeto de fuções comumete ecotradas em aálise de algoritmos. Custo Deomiação Cometários θ(1) θ(log ) θ() θ( log ) θ( 2 ) Costate Logarítmico Liear Liear loga rí tmico Quadrático Um algoritmo com custo costate executa um úmero fixo de operações, de modo que o tempo gasto pelo algoritmo é idepedete do tamaho dos dados de etrada Exemplo: acesso a um elemeto de array (v. Seção 3.3) Um algoritmo dessa categoria reduz cotiuamete o tamaho do problema ou divide um cojuto de dados ao meio, essa metade é dividida ovamete ao meio, e assim por diate Quado dobra, o custo aumeta um valor costate idepedete de, pois: log 2 = log 2 + log A base do logaritmo é irrelevate porque, como mostra o Apêdice B, todos os logaritmos com base costate diferem etre si por um valor costate Exemplos: busca biária (v. Seção ) e expoeciação por quadratura (v. Seção ) O custo do algoritmo é diretamete proporcioal ao tamaho dos dados Exemplo: acesso sequecial a cada elemeto de um array uidimesioal (v. Seção 3.1) Um algoritmo dessa categoria ivoca outro algoritmo com custo logarítmico vezes Exemplo: busca biária um array bidimesioal cotedo listas, cada uma das quais com elemetos ordeados Tipicamete, um algoritmo desse tipo possui um laço de repetição aihado em outro Exemplo: acesso sequecial a cada elemeto de um array bidimesioal cotedo lihas e coluas (v. Seção 3.6) Tabela 6 2: Classes de Crescimeto de Fuções Frequetes em Programação

14 250 Capítulo 6 Aálise de Algoritmos Custo Deomiação Cometários θ( 3 ) θ( c ) θ(c ) θ(!) Cúbico Poliomial Expoecial Fatorial Tipicamete, um algoritmo desse tipo possui um laço de repetição aihado em outro laço que, por sua vez, também é aihado em outro laço. Tal algoritmo é impraticável quado é muito grade. Exemplo: multiplicação de matrizes represetadas como arrays bidimesioais Quado c > 3, um algoritmo dessa atureza pode ser impraticável Exemplo: ão há exemplo o escopo deste livro Um algoritmo desse tipo tem utilidade apeas para etradas muito pequeas, mas existem muitos problemas para os quais, até o mometo, só existem algoritmos dessa atureza Exemplo: um algoritmo que gera todos os subcojutos de um cojuto ou resolve o problema das torres de Haói (v. Seção ) tem custo temporal θ(2 ) Um algoritmo dessa atureza é útil apeas para etradas muito pequeas Exemplo: um algoritmo que gera todas as permutações de um cojuto Tabela 6 2: Classes de Crescimeto de Fuções Frequetes em Programação A Figura 6 5 mostra a aparêcia gráfica de algumas fuções que aparecem a Tabela 6 2 (supodo, evidetemete, que essas fuções sejam reais) log Tempo de execução log 1 Tamaho da etrada Figura 6 5: Fuções Comus em Aálise de Algoritmos A classificação de algoritmos apresetada a Tabela 6 2 é comum, mas ão é completa. Por exemplo, existem algoritmos com custo temporal igual a θ(1.5 ) (v. Seção ) e algoritmos com custo temporal igual a θ( 1.5 ) [3]. Um fato que costuma itrigar iiciates é a preseça de fuções logarítmicas em aálise de algoritmos. Algoritmos com custos temporais θ(log ) icluem um laço de repetição o corpo do qual, a cada iteração, uma porção dos dados de etrada (frequetemete, a metade) é descartada. Um exemplo clássico de algoritmo com tal comportameto é aquele que efetua busca biária (v. Seção ). [3] Um algoritmo que apreseta esse custo temporal é o algoritmo de ordeação de Shell, que ão é explorado esta obra.

15 6.5 Fuções Comus em Aálise de Algoritmos 251 A Tabela 6 3 mostra o tempo aproximado para execução de f() operações quado f() represeta algumas fuções comus em aálise de algoritmos. Aqui, supõe-se que cada operação leva 1 aossegudo (i.e., 10-9 de um segudo) para ser cocluída. FORMATAÇÃO??? f() = 10 = = = log 2 3, s 10-8 s 1, s 2, s 10-8 s 10-6 s 0,0001 s 0,01 s log 2 3, s 10-5 s 0,0017 s 0,23 s s 0,001 s 10 s 27,8 miutos s 1 s 11,6 dias aos s aos aos aos Tabela 6 3: Tempo Estimado para Execução de Operações Hipotéticas Podem-se usar as estimativas de tempo apresetadas a Tabela 6 3 para prever se um determiado algoritmo com custo temporal cohecido apresetará uma solução em tempo razoável para um problema de tamaho específico quado for covertido em programa e executado um computador. Algoritmos com custo temporal poliomial podem ser beeficiados com a melhora de processameto dos computadores, mas essa melhora em poder de processameto ajuda pouco a superação das dificuldades ecotradas por algoritmos com custo expoecial ou fatorial. A Tabela 6 3 sugere que algoritmos com alta taxa de crescimeto [p.ex., com custo θ(2 )] têm aplicabilidade prática apeas para valores relativamete muito pequeos. Por exemplo, mesmo que a suposta celeridade de execução de istruções seja multiplicada por mil, o tempo gasto por um algoritmo com custo temporal θ(2 ) para processar um tamaho de etrada maior do que cotiuará sedo um úmero improuciável de aos. Por outro lado, cosiderado essa hipótese, o tempo gasto por um algoritmo com custo θ( 3 ) levaria apeas 31 aos para completar sua tarefa de processar uma etrada de tamaho igual a Esses exemplos demostram a importâcia da aálise de custos de algoritmos e que ela ão pode ser egligeciada com base o fato de a tecologia computacioal ter evoluído costatemete e muito rapidamete. Em resumo, eficiêcia de um computador é de pouca valia se os programas que ele executa usam algoritmos ieficietes. Exemplo 6.17 Um algoritmo cosome 0,5 ms quado o tamaho dos dados de etrada que ele processa é 100. Qual é o tamaho do problema que pode ser resolvido em 1 mi quado o custo temporal desse algoritmo é: (a) liear, (b) quadrático e (c) cúbico. Solução: Sabe-se que t 1 = 0,5 ms = s, 1 = 100 e t 2 = 1 mi = 60 s. Além disso, tem-se que o custo temporal do algoritmo é dado por: T() = c.f(), em que c é uma costate. (a) Sedo o custo temporal liear, tem-se que: T() = c.. Assim as seguites equações são válidas: [1] = c.100 e [2] 60 = c. Resolvedo o sistema formado pelas equações [1] e [2], tem-se que o tamaho do problema que pode ser resolvido em 1 mi é: = 1,

16 252 Capítulo 6 Aálise de Algoritmos Os demais ites são resolvidos de modo semelhate e são deixados como exercícios para o leitor. As respostas são: (b) = 3464 e (c) = Resultados Teóricos Importates 6.6 Tipicamete, algoritmos são costituídos de várias istruções, de modo que determiar o custo de um algoritmo requer combiar os custos das istruções que o costituem. A seguir, serão apresetados algus teoremas importates referetes à aálise assitótica de algoritmos. A importâcia desses resultados reside o fato de eles terem aplicação imediata a avaliação dessas combiações de istruções. Teorema 6.3: Se T() é c 1 f() + c 2, etão T() é θ(f()). O Teorema 6.3 quer dizer que costates multiplicativas e aditivas podem ser igoradas em aálise de algoritmos, pois elas são irrelevates. Isso ocorre porque, à medida que o valor de cresce, essas costates cotribuem cada vez meos para o custo de processameto. Para eteder a razão pela qual costates podem ser desprezadas, cosidere a Tabela 6 4. Essa tabela sugere que, à medida que o valor assumido pela variável cresce, a importâcia dos coeficietes 500 e 1000 se tora cada vez meor. T() = Cotribuição da costate 500 Cotribuição da costate % 67% % 2% ,01% 0,02% Tabela 6 4: Por Que Costates Podem Ser Desprezadas a Notação Ó? Exemplo 6.18 Mostre que a fução T() = é θ( 2 ). Solução: É fácil mostrar que essa fução é θ( ). Mas, de acordo com o Teorema 6.3, θ( ) é θ( 2 ). Teorema 6.4: Se T 1 () é θ(f()) e T 2 () é θ(g()), etão: T 1 () + T 2 () é θ(max(f(), g())) O Teorema 6.4 é deomiado regra da soma e sua cosequêcia prática é que se pode avaliar o custo de execução de uma sequêcia de istruções, estimado-se primeiro o custo de execução de cada istrução e, etão, cosiderado-se o custo de toda a sequêcia de istruções como o maior desses custos. Exemplo 6.19 Um determiado algoritmo é dividido em dois trechos. Um trecho desse algoritmo tem custo temporal T 1 () dado por θ( 3 ) equato que o outro trecho tem custo temporal T 2 () dado por θ( 2 ). Qual é o custo temporal desse algoritmo? Solução: O custo temporal do algoritmo é θ( 3 ) + θ( 2 ), que, de acordo com o Teorema 6.4, é θ(max( 3, 2 )) = θ( 3 ), visto que 3 2, 0. Teorema 6.5: Se T 1 () é θ(f()) e T 2 () é θ(g()), etão T 1 () T 2 () é θ(f() g()).

17 6.7 Regras Práticas para Aálise Temporal de Algoritmos 253 O Teorema 6.5 é deomiado regra do produto e uma aplicação prática importate desse teorema é a aálise temporal de laços repetição aihados. Exemplo 6.20 Mostre que T() = 5 log (!) é θ( 2 log ). Solução: Sejam T 1 () = 5 e T 2 () = log (!). Etão, tem-se que T() = T 1 () T 2 (). Mas, T 1 () é θ(), de acordo com o Teorema 6.3, e T 2 () é θ(log ) = θ( log ). Esse último resultado é obtido utilizado um raciocíio semelhate àquele do Exemplo 6.4. Portato, em cosoâcia com o Teorema 6.5, T() é θ( log ) = θ( 2 log ). Teorema 6.6: k é O(c ), para k > 0 e c > 1. O Teorema 6.6 iforma que ehuma fução poliomial é maior do que uma fução expoecial por maior que seja o grau do poliômio (v. exemplo abaixo). Exemplo 6.21 Mostre que 1000 é O( ). Solução: Como > 1, de acordo como o Teorema 6.6, 1000 é O( ). Teorema 6.7: Se T() é θ(f()) e f() é θ(g()), etão T() é θ(g()). O Teorema 6.7 é deomiado regra de trasitividade e pode ser parafraseado como: θ(θ(g())) é θ(g()). Exemplo 6.22 Supoha que T() é θ(f()) e f() é 2. Avalie a complexidade de T(). Solução: De acordo com o Teorema 6.7, T() é θ( 2 ). Quado a taxa de crescimeto de um algoritmo é costate (i.e., ela idepede do tamaho da etrada), seu custo é θ(1). Isso sigifica que θ(c) é o mesmo que θ(1) para qualquer que seja a costate c. Por exemplo, o acesso a um elemeto de um array requer apeas a avaliação de uma expressão que idepede do tamaho do array (v. Seção 3.3). Portato o custo de uma istrução dessa atureza é θ(1). 6.7 Regras Práticas para Aálise Temporal de Algoritmos 6.7 Apesar de ão haver ehum cojuto completo de regras para aálise de algoritmos, as regras práticas que serão apresetadas adiate ajudam bastate essa tarefa. Quado se ispecioa algum algoritmo com o objetivo de se determiar seu custo temporal, o foco deve ser aquelas istruções que depedem do tamaho da etrada, pois todas aquelas que ão apresetam essa depedêcia têm custo temporal θ(1). Quado todas as istruções de um algoritmo têm custo temporal θ(1), o algoritmo iteiro também tem custo temporal global θ(1). Além disso, quado um algoritmo possui istruções que ão têm custo temporal θ(1), as istruções avaliadas como θ(1) podem ser igoradas, de acordo com o Teorema Aálise Temporal de Istruções Simples Normalmete, o custo temporal de uma istrução a maioria das liguages de programação pode ser cosiderado θ(1), mas existem exceções, como, por exemplo, atribuições etre estruturas e istruções que evolvem chamadas de algumas fuções que ão podem ser cosideradas θ(1) (v. adiate).

18 254 Capítulo 6 Aálise de Algoritmos Aálise Temporal de Sequêcias de Istruções O custo temporal de uma sequêcia de istruções é determiado pela regra da soma (Teorema 6.4). Isto é, cosidera-se o maior custo temporal detre todos os custos temporais das istruções que fazem parte da sequêcia Aálise Temporal de Estruturas de Cotrole Desvios icodicioais são estruturas de cotrole que ão possuem corpos; i.e., essas estruturas de cotrole ão possuem outras istruções subordiadas a elas. Todas as demais estruturas de cotrole possuem corpos. Usualmete, estruturas de cotrole que possuem corpos são avaliadas de detro para fora (pricipalmete laços de repetição). Ou seja, estima-se primeiro o custo temporal do corpo da estrutura e depois estima-se o custo temporal da estrutura como um todo. Desvios Codicioais O custo temporal de uma istrução codicioal se-etão-seão (if-else em C) é determiado pelo custo de avaliação da expressão codicioal [ormalmete, θ(1)] mais o maior custo temporal detre as istruções que compõem as partes se-etão (if ) e seão (else). Por exemplo, se o custo de avaliação da expressão codicioal for θ(1), o custo temporal das istruções da parte se-etão (if ) for θ() e o custo temporal das istruções da parte seão (else) for θ( 2 ), etão o custo temporal da istrução codicioal será θ(1) + θ( 2 ), que, pela regra da soma (Teorema 6.4), é θ( 2 ). Evidetemete, se uma istrução codicioal ão tiver parte seão (else), cosideram-se apeas os custos temporais da avaliação da codição e da execução das istruções que fazem parte do corpo da istrução codicioal. Estruturas de seleção (switch-case em C) são avaliadas de modo semelhate a istruções codicioais se- -etão-seão, já que estruturas de seleção são desvios codicioais múltiplos. Exemplo 6.23 Supoha que, o trecho de programa a seguir, a fução F() teha custo temporal θ( 2 ) e o custo temporal da fução G() seja θ( log ). Mostre que esse trecho de programa tem custo θ( 2 ). if (x < 0) F(); else G(); Solução: O custo dessa istrução if-else é a soma do custo de avaliação de sua expressão codicioal, que é θ(1), com o maior custo etre as partes if [que tem custo θ( 2 )] e else [que tem custo O( log )]. Agora, o Exemplo 6.5, mostrou-se que log é θ( 2 ). Logo o custo dessa istrução é θ(1) + θ( 2 ), que, de acordo com o Teorema 6.4, é θ( 2 ). Desvios Icodicioais e Istruções retur Qualquer desvios icodicioal ou istrução retur tem custo temporal θ(1). A exceção para essa regra ocorre quado uma expressão que acompaha uma istrução retur tem custo temporal que ão pode ser cosiderado costate, como por exemplo: retur realloc(p, tamaho); Nesse exemplo, o custo da istrução retur correspoderá ao custo da chamada de realloc(), que ão é θ(1) (v. Seção 9.2).

19 Laços de Repetição 6.7 Regras Práticas para Aálise Temporal de Algoritmos 255 O custo temporal de um laço de repetição é a soma sobre o úmero de vezes que o laço é executado do custo temporal da sequêcia de istruções que compõe o corpo do laço mais o custo temporal de avaliação da codição de parada do laço. Usualmete, essa estimativa é o produto do úmero de vezes que o laço é executado pelo custo temporal da istrução de maior custo temporal detro do corpo do laço, mas, algumas vezes, o úmero de repetições do laço ão é fácil de determiar. Frequetemete, o custo temporal de avaliação da codição de parada do laço é θ(1), mas existem situações as quais é exatamete esse custo que determia o custo de todo o laço (v. Exemplo 6.25). Exemplo 6.24 Mostre que o laço for a seguir tem custo temporal θ(). for (i = 0; i < ; ++i) soma += ar[i]; Solução: A istrução for acima efetua as seguites operações: 1. Uma atribuição iicial: i = avaliações da expressão: i < 3. icremetos de i: ++i 4. atribuições com soma a istrução: soma += ar[i] Portato o úmero de istruções elemetares com custo temporal θ(1) é: = Logo T() = e, de acordo como o Teorema 6.2, T() é θ() Aálise Temporal de Chamadas de Fuções Chamadas de fuções são avaliadas de acordo com a próprio custo temporal da fução. A maioria das chamadas das fuções da biblioteca padrão de C têm custo temporal θ(1), mas há otáveis exceções, detre as quais: qsort() (v. Seção 11.5) tem custo temporal θ( log ), em que é o tamaho do array sedo ordeado. Se o array estiver quase ordeado (pior caso), o custo da fução qsort() pode ser θ( 2 ) (depededo de como ela foi implemetada). bsearch() (v. Seção 11.5) tem custo temporal θ(log ), em que é o tamaho do array o qual é efetuada a busca. A maioria das operações sobre strigs implemetadas como fuções declaradas o cabeçalho <strig.h> (v. Seção 3.7) tem custo temporal θ(), em que é o úmero de caracteres do strig sedo processado. No pior casos, realloc() (v. Seção 9.2) tem custos temporal e espacial θ(), sedo o úmero de bytes do espaço sedo redimesioado. Exemplo 6.25 A fução a seguir provavelmete costitui a implemetação mais comum da fução strcpy() da biblioteca padrão de C. Determie seu custo temporal.

20 256 Capítulo 6 Aálise de Algoritmos char *strcpy(char *s1, cost char *s2) char *retoro = s1; while (*s1++ = *s2++) ; retur retoro; Solução: Embora ão apareça ehum valor que idique o tamaho dos dados processados pela fução strcpy(), claramete o tempo gasto por essa fução depede do tamaho do strig copiado. Mais precisamete, a expressão do laço while é executada + 1 vezes, em que é o comprimeto do strig. Como esse laço é a istrução domiate da fução e costates aditivas ão são importates em aálise de algoritmos, o custo temporal da fução é θ(), em que é o comprimeto do strig. 6.8 Aálise de Custo Espacial de Algoritmos 6.8 Aálise espacial de um algoritmo só se faz ecessária quado ele usa, explicitamete, espaço adicioal que depede do tamaho do problema ou se o algoritmo é recursivo e, assim, implicitamete, usa espaço adicioal. Em qualquer outra situação, o custo de um algoritmo em termos de espaço é θ(1), mesmo que o algoritmo use muitas variáveis auxiliares. Qualquer algoritmo recursivo usa espaço adicioal proporcioal ao tamaho dos dados que ele recebe como etrada. Mais precisamete, o custo espacial de um algoritmo recursivo depede do úmero de chamadas recursivas que ele executa, pois, a cada chamada recursiva, ocorre a criação de um registro de ativação (v. Seção 4.3). Exemplo 6.26 A fução ExibeArquivoIvNaTelaRec() apresetada a seguir exibe, recursivamete, um arquivo de texto ivertido a tela. Mostre que o algoritmo implemetado por essa fução a seguir tem custo espacial θ(), em que é o úmero de bytes do arquivo lidos. void ExibeArquivoIvNaTelaRec(FILE *stream) it c; c = fgetc(stream); if (!feof(stream) &&!ferror(stream) ) ExibeArquivoIvNaTelaRec(stream); putchar(c); Solução: A fução em questão foi discutida a Seção Essa fução possui apeas uma chamada recursiva que é levada a efeito equato ão ocorre erro de leitura em o fial do arquivo lido é atigido. Portato o úmero de registros de ativação criados por essas chamadas recursivas correspode exatamete ao úmero de bytes lidos o arquivo. Logo o espaço adicioal utilizado pela fução é c., em que c é uma costate que represeta o tamaho de cada registro de ativação criado. Isso mostra que o custo espacial dessa fução é θ(c), que é o mesmo que θ(), de acordo com o Teorema 6.3. A aálise espacial de algoritmos iterativos é relativamete fácil, mas em sempre a aálise espacial de um algoritmo recursivo é tão fácil quato aquela apresetada o último exemplo.

21 6.9 Algoritmos Recursivos e Relações de Recorrêcia Algoritmos Recursivos e Relações de Recorrêcia 6.9 A aálise temporal de algoritmos recursivos é bem mais complicada do que o que foi visto acima para algoritmos ão recursivos. Aalisar um algoritmo recursivo requer, em primeiro lugar, associá-lo a uma relação de recorrêcia que defie codições matemáticas que o custo temporal deve satisfazer. Mais precisamete, a fução T() que descreve o custo temporal do algoritmo deve ser escrita como algumas equações que precisam ser satisfeitas. Em seguida, essas equações devem ser resolvidas para que o custo do algoritmo seja determiado. Esse último passo raramete é trivial (v. Apêdice B). Exemplo 6.27 Cosidere a fução recursiva que calcula o fatorial de um úmero atural. Determie o custo temporal dessa fução [4]. it Fatorial(it ) if ( == 0) retur 1; else retur *Fatorial( - 1); Solução: Para ão haver cofusão de termiologia com a deomiação fução em matemática, doravate, a fução Fatorial() será referida como algoritmo. Uma rápida ispeção do algoritmo acima idica que seu custo temporal está associada ao úmero de vezes que a operação de multiplicação é efetuada para cada valor de. Mas, para um dado valor de, o úmero de multiplicações efetuadas é o úmero de multiplicações efetuadas pela chamada Fatorial( - 1) mais 1, levado em cosideração que o valor retorado por Fatorial( - 1) é multiplicado por. Portato, se o úmero de multiplicações para um dado valor de for represetado por T, tem-se que: T = T Essa última equação é deomiada equação de recorrêcia porque o valor da fução para é determiado pelo valor da fução para um valor meor de (o caso em questão, 1). Agora, uma equação de recorrêcia apeas ão é suficiete para defiir uma fução úica. Quer dizer, é ecessário ter uma ou mais codições iiciais, que são valores cohecidos da fução que ão depedem de. No caso do algoritmo sob escrutíio, sabe-se que, quado é igual a 0, ão ocorre ehuma multiplicação. Logo a úica codição iicial da relação de recorrêcia pode ser escrita como: T 0 = 0 Resumido, o algoritmo está associado à seguite relação de recorrêcia: 0 se = 0 T = T se > 0 Ecotrar uma solução para essa relação de recorrêcia sigifica ecotrar um valor para T que depeda apeas de (i.e., que ão depeda de T 1 ). Existem várias técicas de resolução de relações de recorrêcia. A técica a ser utilizada aqui é relativamete simples, mas sua utilidade é bem limitada. Essa técica cosiste em aplicar a relação de recorrêcia para algus valores de e tetar ecotrar um padrão de resultados que permita propor uma solução (cojectura) para essa relação [4] NB: Essa fução ão está corretamete implemetada, pois ela ão termia quado < 0. Ela foi propositadamete implemetada assim apeas para facilitar sua aálise.

ANÁLISE DE COMPLEXIDADE DE ALGORITMOS

ANÁLISE DE COMPLEXIDADE DE ALGORITMOS 1 FEUP/LEEC Algoritmos e Estruturas de Dados 2001/2002 ANÁLISE DE COMPLEXIDADE DE ALGORITMOS João Pascoal Faria http://www.fe.up.pt/~jpf 2 Itrodução Algoritmo: cojuto claramete especificado de istruções

Leia mais

Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos

Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos Aálise de Algoritmos Aálise de Algoritmos Prof Dr José Augusto Baraauskas DFM-FFCLRP-USP A Aálise de Algoritmos é um campo da Ciêcia da Computação que tem como objetivo o etedimeto da complexidade dos

Leia mais

Estudando complexidade de algoritmos

Estudando complexidade de algoritmos Estudado complexidade de algoritmos Dailo de Oliveira Domigos wwwdadomicombr Notas de aula de Estrutura de Dados e Aálise de Algoritmos (Professor Adré Bala, mestrado UFABC) Durate os estudos de complexidade

Leia mais

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2007.

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2007. Ageda Aálise e Técicas de Algoritmos Motivação para aálise de de algoritmos Aálise assitótica Algus exemplos simples Jorge Figueiredo Aálise de de Algoritmos Dois aspectos importates: Um problema pode,

Leia mais

B Este apêndice apresenta tópicos de matemática que podem ser necessários para completo entendimento do texto principal.

B Este apêndice apresenta tópicos de matemática que podem ser necessários para completo entendimento do texto principal. Apêdice B Elemetos de Matemática Este apêdice apreseta tópicos de matemática que podem ser ecessários para completo etedimeto do texto pricipal. B. Somatórios B. Um somatório, represetado pela letra grega

Leia mais

B Este apêndice apresenta tópicos de matemática que podem ser necessários para completo entendimento do texto principal.

B Este apêndice apresenta tópicos de matemática que podem ser necessários para completo entendimento do texto principal. Apêdice B Elemetos de Matemática Este apêdice apreseta tópicos de matemática que podem ser ecessários para completo etedimeto do texto pricipal B Somatórios B Um somatório, represetado pela letra grega

Leia mais

S E Q U Ê N C I A S E L I M I T E S. Prof. Benito Frazão Pires. Uma sequência é uma lista ordenada de números

S E Q U Ê N C I A S E L I M I T E S. Prof. Benito Frazão Pires. Uma sequência é uma lista ordenada de números S E Q U Ê N C I A S E L I M I T E S Prof. Beito Frazão Pires Uma sequêcia é uma lista ordeada de úmeros a, a 2,..., a,... ) deomiados termos da sequêcia: a é o primeiro termo, a 2 é o segudo termo e assim

Leia mais

Séquências e Séries Infinitas de Termos Constantes

Séquências e Séries Infinitas de Termos Constantes Capítulo Séquêcias e Séries Ifiitas de Termos Costates.. Itrodução Neste capítulo estamos iteressados em aalisar as séries ifiitas de termos costates. Etretato, para eteder as séries ifiitas devemos ates

Leia mais

Introdução. Objetivo da Ciência da Computação. Regra Geral. Nenhuma implementação excelente salva um Algoritmo inadequado.

Introdução. Objetivo da Ciência da Computação. Regra Geral. Nenhuma implementação excelente salva um Algoritmo inadequado. Itrodução Problema Algoritmo Implemetação Problema Uiversidade Federal de Ouro Preto Departameto de Computação Algoritmo 1 Algoritmo Algoritmo Projeto e Aálise de Algoritmos - I Implemetação C Implemetação

Leia mais

Análise e Síntese de Algoritmos. Revisão CLRS, Cap. 1-3

Análise e Síntese de Algoritmos. Revisão CLRS, Cap. 1-3 Aálise e Sítese de Algoritmos Revisão CLRS, Cap. 1-3 Resumo Algoritmos Aálise de algoritmos Sítese de algoritmos Notação assimptótica Outra otação utilizada Somatórios 2007/2008 Aálise e Sítese de Algoritmos

Leia mais

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005. Ageda Aálise e Técicas de Algoritmos Jorge Figueiredo Relação de de Recorrêcia Derivado recorrêcia Resolvedo recorrêcia Aálise de de algoritmos recursivos Aálise de de Algoritmos Recursivos Itrodução A

Leia mais

DESIGUALDADES, LEIS LIMITE E TEOREMA DO LIMITE CENTRAL. todas as repetições). Então, para todo o número positivo ξ, teremos:

DESIGUALDADES, LEIS LIMITE E TEOREMA DO LIMITE CENTRAL. todas as repetições). Então, para todo o número positivo ξ, teremos: 48 DESIGUALDADES, LEIS LIMITE E TEOREMA DO LIMITE CENTRAL LEI DOS GRANDES NÚMEROS Pretede-se estudar o seguite problema: À medida que o úmero de repetições de uma experiêcia cresce, a frequêcia relativa

Leia mais

n ) uma amostra aleatória da variável aleatória X.

n ) uma amostra aleatória da variável aleatória X. - Distribuições amostrais Cosidere uma população de objetos dos quais estamos iteressados em estudar uma determiada característica. Quado dizemos que a população tem distribuição FX ( x ), queremos dizer

Leia mais

Introdução à Computação

Introdução à Computação Itrodução à Computação Recursividade Aula de hoje Recursividade Fução orial Voto de cofiaça recursivo Fução de Fiboacci Desvatages Professor: Adré de Carvalho Recursão Muitas estratégias de programação

Leia mais

Cap. 4 - Estimação por Intervalo

Cap. 4 - Estimação por Intervalo Cap. 4 - Estimação por Itervalo Amostragem e iferêcia estatística População: cosiste a totalidade das observações em que estamos iteressados. Nº de observações a população é deomiado tamaho=n. Amostra:

Leia mais

Capítulo 5. CASO 5: EQUAÇÃO DE POISSON 5.1 MODELO MATEMÁTICO E SOLUÇÃO ANALÍTICA

Capítulo 5. CASO 5: EQUAÇÃO DE POISSON 5.1 MODELO MATEMÁTICO E SOLUÇÃO ANALÍTICA Capítulo 5. CASO 5: EQUAÇÃO DE POISSON No presete capítulo, é abordado um problema difusivo uidimesioal com absorção de calor (Icropera e DeWitt, 199, o que resulta uma equação de Poisso, que é uma equação

Leia mais

1 Amintas engenharia

1 Amintas engenharia 1 Amitas egeharia 2 Cálculo Numérico 1. Itrodução Amitas Paiva Afoso 3 1. Itrodução O que é o Cálculo Numérico? 4 1. Itrodução O Cálculo Numérico correspode a um cojuto de ferrametas ou métodos usados

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos Marcelo Cezar Pito Apresetação Plao de Esio Trabalho Extra-classe Pré-requisitos: Somatório Combiatória Probabilidade Logaritmo Itrodução Algoritmos -> cere da computação Programa

Leia mais

Introdução a Complexidade de Algoritmos

Introdução a Complexidade de Algoritmos Itrodução a Complexidade de Algoritmos Estruturas de Dados Prof. Vilso Heck Juior Apresetação Revisão - O Algoritmo; A Complexidade; Exercício. Complexidade de Algoritmos REVISÃO - O ALGORITMO O Algoritmo

Leia mais

3. Seja C o conjunto dos números complexos. Defina a soma em C por

3. Seja C o conjunto dos números complexos. Defina a soma em C por Eercícios Espaços vetoriais. Cosidere os vetores = (8 ) e = ( -) em. (a) Ecotre o comprimeto de cada vetor. (b) Seja = +. Determie o comprimeto de. Qual a relação etre seu comprimeto e a soma dos comprimetos

Leia mais

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches CT-234 Estruturas de Dados, Aálise de Algoritmos e Complexidade Estrutural Carlos Alberto Aloso Saches CT-234 5) Ordeação Resoluções simples, Lower boud, MergeSort, RadixSort Algus algoritmos de ordeação

Leia mais

10 - Medidas de Variabilidade ou de Dispersão

10 - Medidas de Variabilidade ou de Dispersão 10 - Medidas de Variabilidade ou de Dispersão 10.1 Itrodução Localizado o cetro de uma distribuição de dados, o próximo passo será verificar a dispersão desses dados, buscado uma medida para essa dispersão.

Leia mais

DERIVADAS DE FUNÇÕES11

DERIVADAS DE FUNÇÕES11 DERIVADAS DE FUNÇÕES11 Gil da Costa Marques Fudametos de Matemática I 11.1 O cálculo diferecial 11. Difereças 11.3 Taxa de variação média 11.4 Taxa de variação istatâea e potual 11.5 Primeiros exemplos

Leia mais

Introdução. Objetivo da Ciência da Computação. Regra Geral. Problema Algoritmo Implementação. Projeto e Análise de. Algoritmo 3

Introdução. Objetivo da Ciência da Computação. Regra Geral. Problema Algoritmo Implementação. Projeto e Análise de. Algoritmo 3 Itrodução Problema Algoritmo Implemetação Problema Uiversidade Federal de Ouro Preto Departameto de Computação Algoritmo 1 Algoritmo 2 Algoritmo 3 Projeto e Aálise de Algoritmos - I Implemetação C Implemetação

Leia mais

Sumário. 2 Índice Remissivo 19

Sumário. 2 Índice Remissivo 19 i Sumário 1 Estatística Descritiva 1 1.1 Coceitos Básicos.................................... 1 1.1.1 Defiições importates............................. 1 1.2 Tabelas Estatísticas...................................

Leia mais

Material Teórico - Módulo Binômio de Newton e Triangulo de Pascal. Soma de Elementos em Linhas, Colunas e Diagonais. Segundo Ano do Ensino Médio

Material Teórico - Módulo Binômio de Newton e Triangulo de Pascal. Soma de Elementos em Linhas, Colunas e Diagonais. Segundo Ano do Ensino Médio Material Teórico - Módulo Biômio de Newto e Triagulo de Pascal Soma de Elemetos em Lihas, Coluas e Diagoais Segudo Ao do Esio Médio Autor: Prof Fabrício Siqueira Beevides Revisor: Prof Atoio Camiha M Neto

Leia mais

Material Teórico - Módulo Binômio de Newton e Triangulo de Pascal. Soma de Elementos em Linhas, Colunas e Diagonais. Segundo Ano do Ensino Médio

Material Teórico - Módulo Binômio de Newton e Triangulo de Pascal. Soma de Elementos em Linhas, Colunas e Diagonais. Segundo Ano do Ensino Médio Material Teórico - Módulo Biômio de Newto e Triagulo de Pascal Soma de Elemetos em Lihas, Coluas e Diagoais Segudo Ao do Esio Médio Autor: Prof Fabrício Siqueira Beevides Revisor: Prof Atoio Camiha M Neto

Leia mais

Uma recorrência é uma equação que descreve uma função em termos do seu valor em entradas menores

Uma recorrência é uma equação que descreve uma função em termos do seu valor em entradas menores Uma recorrêcia é uma equação que descreve uma fução em termos do seu valor em etradas meores T( ) O( 1) T( 1) 1 se 1 se 1 Útil para aálise de complexidade de algoritmos recursivos ou do tipo dividir para

Leia mais

2.2. Séries de potências

2.2. Séries de potências Capítulo 2 Séries de Potêcias 2.. Itrodução Série de potêcias é uma série ifiita de termos variáveis. Assim, a teoria desevolvida para séries ifiitas de termos costates pode ser estedida para a aálise

Leia mais

Fundamentos de Análise Matemática Profª Ana Paula. Sequência Infinitas

Fundamentos de Análise Matemática Profª Ana Paula. Sequência Infinitas Fudametos de Aálise Matemática Profª Aa Paula Sequêcia Ifiitas Defiição 1: Uma sequêcia umérica a 1, a 2, a 3,,a,é uma fução, defiida o cojuto dos úmeros aturais : f : f a Notação: O úmero é chamado de

Leia mais

Prova Parcial 1 Matemática Discreta para Computação Aluno(a): Data: 18/12/2012

Prova Parcial 1 Matemática Discreta para Computação Aluno(a): Data: 18/12/2012 Prova Parcial Aluo(a): Data: 8/2/202. (,5p) Use regras de iferêcia para provar que os argumetos são válidos. (usar os símbolos proposicioais idicados): A Rússia era uma potêcia superior, e ou a Fraça ão

Leia mais

INTERPOLAÇÃO POLINOMIAL

INTERPOLAÇÃO POLINOMIAL 1 Mat-15/ Cálculo Numérico/ Departameto de Matemática/Prof. Dirceu Melo LISTA DE EXERCÍCIOS INTERPOLAÇÃO POLINOMIAL A aproximação de fuções por poliômios é uma das ideias mais atigas da aálise umérica,

Leia mais

Stela Adami Vayego DEST/UFPR

Stela Adami Vayego DEST/UFPR Resumo 3 Resumo dos dados uméricos por meio de úmeros. Medidas de Tedêcia Cetral A tedêcia cetral da distribuição de freqüêcias de uma variável em um cojuto de dados é caracterizada pelo valor típico dessa

Leia mais

Stela Adami Vayego DEST/UFPR

Stela Adami Vayego DEST/UFPR Resumo 3 Resumo dos dados uméricos por meio de úmeros 1. Medidas de Tedêcia Cetral A tedêcia cetral da distribuição de freqüêcias de uma variável em um cojuto de dados é caracterizada pelo valor típico

Leia mais

ORDENAÇÃO 1. ORDENAÇÃO POR TROCA

ORDENAÇÃO 1. ORDENAÇÃO POR TROCA ORDENAÇÃO Ordear é o processo de orgaizar uma lista de iformações similares em ordem crescete ou decrescete. Especificamete, dada uma lista de ites r[0], r[], r[],..., r[-], cada item a lista é chamado

Leia mais

Fontes Bibliográficas. Estruturas de Dados Aula 14: Recursão. Introdução. Introdução (cont.)

Fontes Bibliográficas. Estruturas de Dados Aula 14: Recursão. Introdução. Introdução (cont.) Fotes Bibliográficas Estruturas de Dados Aula 14: Recursão Livros: Projeto de Algoritmos (Nivio Ziviai): Capítulo 2; Estruturas de Dados e seus Algoritmos (Szwarefiter, et. al): Capítulo 1; Algorithms

Leia mais

Preliminares 1. 1 lim sup, lim inf. Medida e Integração. Departamento de Física e Matemática. USP-RP. Prof. Rafael A. Rosales. 8 de março de 2009.

Preliminares 1. 1 lim sup, lim inf. Medida e Integração. Departamento de Física e Matemática. USP-RP. Prof. Rafael A. Rosales. 8 de março de 2009. Medida e Itegração. Departameto de Física e Matemática. USP-RP. Prof. Rafael A. Rosales 8 de março de 2009. 1 lim sup, lim if Prelimiares 1 Seja (x ), N, uma seqüêcia de úmeros reais, e l o limite desta

Leia mais

Lista de Exercícios #6 Assunto: Propriedade dos Estimadores e Métodos de Estimação

Lista de Exercícios #6 Assunto: Propriedade dos Estimadores e Métodos de Estimação Assuto: Propriedade dos Estimadores e Métodos de Estimação. ANPEC 08 - Questão 6 Por regulametação, a cocetração de um produto químico ão pode ultrapassar 0 ppm. Uma fábrica utiliza esse produto e sabe

Leia mais

5 Teoria dos Valores Extremos

5 Teoria dos Valores Extremos Teoria dos Valores Extremos 57 5 Teoria dos Valores Extremos A Teoria dos Valores Extremos vem sedo bastate utilizada em campos ligados a evetos raros. Sua estatística é aplicada a estimação de evetos

Leia mais

Alguns autores também denotam uma sequência usando parêntesis:

Alguns autores também denotam uma sequência usando parêntesis: Capítulo 3 Sequêcias e Séries Numéricas 3. Sequêcias Numéricas Uma sequêcia umérica é uma fução real com domíio N que, a cada associa um úmero real a. Os úmeros a são chamados termos da sequêcia. É comum

Leia mais

binomial seria quase simétrica. Nestas condições será também melhor a aproximação pela distribuição normal.

binomial seria quase simétrica. Nestas condições será também melhor a aproximação pela distribuição normal. biomial seria quase simétrica. Nestas codições será também melhor a aproximação pela distribuição ormal. Na prática, quado e p > 7, a distribuição ormal com parâmetros: µ p 99 σ p ( p) costitui uma boa

Leia mais

1. ORDENAÇÃO POR TROCA ORDENAÇÃO. 1.1 Ordenação por Bolha. Exemplo, 25, 57, 48, 37, 12, 92, 86, 33. Algoritmo. Complexidade de Tempo

1. ORDENAÇÃO POR TROCA ORDENAÇÃO. 1.1 Ordenação por Bolha. Exemplo, 25, 57, 48, 37, 12, 92, 86, 33. Algoritmo. Complexidade de Tempo ORDENAÇÃO Ordear é o processo de orgaizar uma lista de iformações similares em ordem crescete ou decrescete. Especificamete, dada uma lista de ites r[], r[], r[],, r[-], cada item a lista é chamado registro.

Leia mais

Considerações finais

Considerações finais Cosiderações fiais Bases Matemáticas Defiições prelimiares Defiição 1 Dizemos que y é uma cota superior para um cojuto X se, para todo x X é, verdade que y x. Exemplo 1 os úmeros 2, 3, π e quaisquer outros

Leia mais

DISTRIBUIÇÃO AMOSTRAL E ESTIMAÇÃO PONTUAL INTRODUÇÃO ROTEIRO POPULAÇÃO E AMOSTRA. Estatística Aplicada à Engenharia

DISTRIBUIÇÃO AMOSTRAL E ESTIMAÇÃO PONTUAL INTRODUÇÃO ROTEIRO POPULAÇÃO E AMOSTRA. Estatística Aplicada à Engenharia ROTEIRO DISTRIBUIÇÃO AMOSTRAL E ESTIMAÇÃO PONTUAL 1. Itrodução. Teorema Cetral do Limite 3. Coceitos de estimação potual 4. Métodos de estimação potual 5. Referêcias Estatística Aplicada à Egeharia 1 Estatística

Leia mais

Recorrências. Universidade Federal do Amazonas Departamento de Eletrônica e Computação

Recorrências. Universidade Federal do Amazonas Departamento de Eletrônica e Computação Recorrêcias Uiversidade Federal do Amazoas Departameto de Eletrôica e Computação Recorrêcias A expressão: c T ( ) 2T c 2 é uma recorrêcia. 1 > 1 Recorrêcia: uma equação que descreve uma fução em termos

Leia mais

BÁRBARA DENICOL DO AMARAL RODRIGUEZ CINTHYA MARIA SCHNEIDER MENEGHETTI CRISTIANA ANDRADE POFFAL SEQUÊNCIAS NUMÉRICAS. 1 a Edição

BÁRBARA DENICOL DO AMARAL RODRIGUEZ CINTHYA MARIA SCHNEIDER MENEGHETTI CRISTIANA ANDRADE POFFAL SEQUÊNCIAS NUMÉRICAS. 1 a Edição BÁRBARA DENICOL DO AMARAL RODRIGUEZ CINTHYA MARIA SCHNEIDER MENEGHETTI CRISTIANA ANDRADE POFFAL SEQUÊNCIAS NUMÉRICAS 1 a Edição Rio Grade 2017 Uiversidade Federal do Rio Grade - FURG NOTAS DE AULA DE CÁLCULO

Leia mais

Complexidade de Algoritmos Aula 5

Complexidade de Algoritmos Aula 5 Complexidade de Algoritmos Aula 5 Potecia (a: real, : iteiro: real; p: real; iicio 1. se = 0 etão retora ( 1 ; 2. se ( mod 2 = 1 etão 3. p Potecia( a, ( 1/2 ; 4. retora( a*p*p ; 5. seão p Potecia( a, /2

Leia mais

FICHA de AVALIAÇÃO de MATEMÁTICA A 11.º Ano Versão 2

FICHA de AVALIAÇÃO de MATEMÁTICA A 11.º Ano Versão 2 FICHA de AVALIAÇÃO de MATEMÁTICA A.º Ao Versão Aluo: N.º Turma: Professor: Classificação: Apresete o seu raciocíio de forma clara, idicado todos os cálculos que tiver de efetuar e todas as justificações

Leia mais

5. ANÁLISE DE SISTEMAS DA CONFIABILIADE DE SISTEMAS SÉRIE-PARALELO

5. ANÁLISE DE SISTEMAS DA CONFIABILIADE DE SISTEMAS SÉRIE-PARALELO 5. ANÁLISE DE SISTEMAS DA CONFIABILIADE DE SISTEMAS SÉRIE-PARALELO 5.1 INTRODUÇÃO Um sistema é defiido como todo o cojuto de compoetes itercoectados, previamete determiados, de forma a realizar um cojuto

Leia mais

Ordenação e Busca em Arquivos

Ordenação e Busca em Arquivos Ordeação e Busca em Arquivos Cristia D. A. Ciferri Thiago A. S. Pardo Leadro C. Citra M.C.F. de Oliveira Moacir Poti Jr. Ordeação Facilita a busca Pode ajudar a dimiuir o úmero de acessos a disco Busca

Leia mais

Alguns autores também denotam uma sequência usando parêntesis:

Alguns autores também denotam uma sequência usando parêntesis: Capítulo 3 Sequêcias e Séries Numéricas 3. Sequêcias Numéricas Uma sequêcia umérica é uma fução real com domíio N que, a cada associa um úmero real a. Os úmeros a são chamados termos da sequêcia. É comum

Leia mais

Aula 3 : Somatórios & PIF

Aula 3 : Somatórios & PIF Aula 3 : Somatórios & PIF Somatório: Somatório é um operador matemático que os permite represetar facilmete somas de um grade úmero de parcelas É represetado pela letra maiúscula do alfabeto grego sigma

Leia mais

Virgílio A. F. Almeida DCC-UFMG 1/2005

Virgílio A. F. Almeida DCC-UFMG 1/2005 Virgílio A. F. Almeida DCC-UFMG 1/005 !" # Comparado quatitativamete sistemas eperimetais: Algoritmos, protótipos, modelos, etc Sigificado de uma amostra Itervalos de cofiaça Tomado decisões e comparado

Leia mais

Exercício: Mediu-se os ângulos internos de um quadrilátero e obteve-se 361,4. Qual é o erro de que está afetada esta medida?

Exercício: Mediu-se os ângulos internos de um quadrilátero e obteve-se 361,4. Qual é o erro de que está afetada esta medida? 1. Tratameto estatísticos dos dados 1.1. TEORIA DE ERROS O ato de medir é, em essêcia, um ato de comparar, e essa comparação evolve erros de diversas origes (dos istrumetos, do operador, do processo de

Leia mais

DFS Série Discreta de Fourier DFT Transformada Discreta de Fourier Convolução Circular

DFS Série Discreta de Fourier DFT Transformada Discreta de Fourier Convolução Circular Sistemas de Processameto Digital Egeharia de Sistemas e Iformática Ficha 4 5/6 4º Ao/ º Semestre DFS Série Discreta de Fourier DFT Trasformada Discreta de Fourier Covolução Circular Para calcular a DFT,

Leia mais

Sequências Reais. Departamento de Matemática - UEL Ulysses Sodré. 1 Sequências de números reais 1

Sequências Reais. Departamento de Matemática - UEL Ulysses Sodré.  1 Sequências de números reais 1 Matemática Essecial Sequêcias Reais Departameto de Matemática - UEL - 200 Ulysses Sodré http://www.mat.uel.br/matessecial/ Coteúdo Sequêcias de úmeros reais 2 Médias usuais 6 3 Médias versus progressões

Leia mais

Sumário. 2 Índice Remissivo 17

Sumário. 2 Índice Remissivo 17 i Sumário 1 Itrodução à Iferêcia Estatística 1 1.1 Defiições Básicas................................... 1 1.2 Amostragem....................................... 2 1.2.1 Tipos de Amostragem.............................

Leia mais

Material Teórico - Módulo de ESTATÍSTICA. As Diferentes Médias. Primeiro Ano do Ensino Médio

Material Teórico - Módulo de ESTATÍSTICA. As Diferentes Médias. Primeiro Ano do Ensino Médio Material Teórico - Módulo de ESTATÍSTICA As Diferetes Médias Primeiro Ao do Esio Médio Autor: Prof Atoio Camiha Muiz Neto Revisor: Prof Fracisco Bruo Holada Nesta aula, pausamos a discussão de Estatística

Leia mais

Números primos, números compostos e o Teorema Fundamental da Aritmética

Números primos, números compostos e o Teorema Fundamental da Aritmética Polos Olímpicos de Treiameto Curso de Teoria dos Números - Nível 3 Carlos Gustavo Moreira Aula 4 Números primos, úmeros compostos e o Teorema Fudametal da Aritmética 1 O Teorema Fudametal da Aritmética

Leia mais

O termo "linear" significa que todas as funções definidas no modelo matemático que descreve o problema devem ser lineares, isto é, se f( x1,x2

O termo linear significa que todas as funções definidas no modelo matemático que descreve o problema devem ser lineares, isto é, se f( x1,x2 MÓDULO 4 - PROBLEMAS DE TRANSPORTE Baseado em Novaes, Atôio Galvão, Métodos de Otimização: aplicações aos trasportes. Edgar Blücher, São Paulo, 978..CONCEITOS BÁSICOS DE PROGRAMAÇÃO LINEAR É uma técica

Leia mais

FICHA de AVALIAÇÃO de MATEMÁTICA A 11.º Ano Versão 1

FICHA de AVALIAÇÃO de MATEMÁTICA A 11.º Ano Versão 1 FICHA de AVALIAÇÃO de MATEMÁTICA A.º Ao Versão Nome: N.º Turma: Professor: Classificação: Apresete o seu raciocíio de forma clara, idicado todos os cálculos que tiver de efetuar e todas as ustificações

Leia mais

Cap. VI Histogramas e Curvas de Distribuição

Cap. VI Histogramas e Curvas de Distribuição TLF /11 Capítulo VI Histogramas e curvas de distribuição 6.1. Distribuições e histogramas. 6 6.. Distribuição limite 63 6.3. Sigificado da distribuição limite: frequêcia esperada e probabilidade de um

Leia mais

Seqüências e Séries. Notas de Aula 4º Bimestre/2010 1º ano - Matemática Cálculo Diferencial e Integral I Profª Drª Gilcilene Sanchez de Paulo

Seqüências e Séries. Notas de Aula 4º Bimestre/2010 1º ano - Matemática Cálculo Diferencial e Integral I Profª Drª Gilcilene Sanchez de Paulo Seqüêcias e Séries Notas de Aula 4º Bimestre/200 º ao - Matemática Cálculo Diferecial e Itegral I Profª Drª Gilcilee Sachez de Paulo Seqüêcias e Séries Para x R, podemos em geral, obter sex, e x, lx, arctgx

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Uiversidade Federal de Alfeas Projeto e Aálise de Algoritmos Aula 07 Notações θ, Ω, ω, ο humberto@bcc.uifal-mg.edu.br Última aula Notação O Uma fução f domia assitoticamete outra fução g se existem duas

Leia mais

Critérios de correção e orientações de resposta p-fólio

Critérios de correção e orientações de resposta p-fólio Miistério da Ciêcia, Tecologia e Esio Superior U.C. 037 Elemetos de Probabilidade e Estatística de Juho de 0 Critérios de correção e orietações de resposta p-fólio Neste relatório apresetam-se os critérios

Leia mais

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Pato Branco ENGENHARIA DE COMPUTAÇÃO. Prova Parcial 1 Matemática Discreta para Computação 2011

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Pato Branco ENGENHARIA DE COMPUTAÇÃO. Prova Parcial 1 Matemática Discreta para Computação 2011 Campus Pato Braco Prova Parcial Matemática Discreta para Computação 20 Aluo(a): Data: 08/04/20. (,5p) Explicar o Paradoxo de Cator. Use como base o seguite: Teorema de Cator: Para qualquer cojuto A, a

Leia mais

FUNÇÕES CONTÍNUAS Onofre Campos

FUNÇÕES CONTÍNUAS Onofre Campos OLIMPÍADA BRASILEIRA DE MATEMÁTICA NÍVEL III SEMANA OLÍMPICA Salvador, 19 a 26 de jaeiro de 2001 1. INTRODUÇÃO FUNÇÕES CONTÍNUAS Oofre Campos oofrecampos@bol.com.br Vamos estudar aqui uma ova classe de

Leia mais

PROJETO E ANÁLISES DE EXPERIMENTOS (PAE) PROJETO FATORIAL 2 k COMPLETO E REPLICADO. Dr. Sivaldo Leite Correia

PROJETO E ANÁLISES DE EXPERIMENTOS (PAE) PROJETO FATORIAL 2 k COMPLETO E REPLICADO. Dr. Sivaldo Leite Correia PROJETO E ANÁLISES DE EXPERIMENTOS (PAE) PROJETO FATORIAL 2 k COMPLETO E REPLICADO Dr. Sivaldo Leite Correia CONCEITOS, LIMITAÇÕES E APLICAÇÕES Nos tópicos ateriores vimos as estratégias geeralizadas para

Leia mais

Exponenciais e Logaritmos (MAT 163) - Notas de Aulas 2 Prof Carlos Alberto S Soares

Exponenciais e Logaritmos (MAT 163) - Notas de Aulas 2 Prof Carlos Alberto S Soares Expoeciais e Logaritmos (MAT 163) - Notas de Aulas 2 Prof Carlos Alberto S Soares 1 Prelimiares Lembremos que, dados cojutos A, B R ão vazios, uma fução de domíio A e cotradomíio B, aotada por, f : A B,

Leia mais

A finalidade de uma equação de regressão seria estimar valores de uma variável, com base em valores conhecidos da outra.

A finalidade de uma equação de regressão seria estimar valores de uma variável, com base em valores conhecidos da outra. Jaete Pereira Amador Itrodução A aálise de regressão tem por objetivo descrever através de um modelo matemático, a relação existete etre duas variáveis, a partir de observações dessas viráveis. A aálise

Leia mais

XIX Semana Olímpica de Matemática. Nível U. Algumas Técnicas com Funções Geratrizes. Davi Lopes

XIX Semana Olímpica de Matemática. Nível U. Algumas Técnicas com Funções Geratrizes. Davi Lopes XIX Semaa Olímpica de Matemática Nível U Algumas Técicas com Fuções Geratrizes Davi Lopes O projeto da XIX Semaa Olímpica de Matemática foi patrociado por: Algumas Técicas com Fuções Geratrizes Davi Lopes

Leia mais

Provas de Matemática Elementar - EAD. Período

Provas de Matemática Elementar - EAD. Período Provas de Matemática Elemetar - EAD Período 01. Sérgio de Albuquerque Souza 4 de setembro de 014 UNIVERSIDADE FEDERAL DA PARAÍBA CCEN - Departameto de Matemática http://www.mat.ufpb.br/sergio 1 a Prova

Leia mais

Induzindo a um bom entendimento do Princípio da Indução Finita

Induzindo a um bom entendimento do Princípio da Indução Finita Iduzido a um bom etedimeto do Pricípio da Idução Fiita Jamil Ferreira (Apresetado a VI Ecotro Capixaba de Educação Matemática e utilizado como otas de aula para disciplias itrodutórias do curso de matemática)

Leia mais

( 1,2,4,8,16,32,... ) PG de razão 2 ( 5,5,5,5,5,5,5,... ) PG de razão 1 ( 100,50,25,... ) PG de razão ½ ( 2, 6,18, 54,162,...

( 1,2,4,8,16,32,... ) PG de razão 2 ( 5,5,5,5,5,5,5,... ) PG de razão 1 ( 100,50,25,... ) PG de razão ½ ( 2, 6,18, 54,162,... Progressões Geométricas Defiição Chama se progressão geométrica PG qualquer seqüêcia de úmeros reais ou complexos, ode cada termo a partir do segudo, é igual ao aterior, multiplicado por uma costate deomiada

Leia mais

Capítulo I Séries Numéricas

Capítulo I Séries Numéricas Capítulo I Séries Numéricas Capitulo I Séries. SÉRIES NÚMERICAS DEFINIÇÃO Sedo u, u,..., u,... uma sucessão umérica, chama-se série umérica de termo geral u à epressão que habitualmete se escreve u u...

Leia mais

Ordenação (Parte 1) Prof. Túlio Toffolo BCC202 Aula 13 Algoritmos e Estruturas de Dados I

Ordenação (Parte 1) Prof. Túlio Toffolo  BCC202 Aula 13 Algoritmos e Estruturas de Dados I Ordeação (Parte 1) Prof. Túlio Toffolo http://www.toffolo.com.br BCC0 Aula 13 Algoritmos e Estruturas de Dados I Critério de Ordeação Ordea-se de acordo com uma chave: typedef it TChave; typedef struct

Leia mais

6.1 Estimativa de uma média populacional: grandes amostras. Definição: Um estimador é uma característica amostral (como a média amostral

6.1 Estimativa de uma média populacional: grandes amostras. Definição: Um estimador é uma característica amostral (como a média amostral 6 ESTIMAÇÃO 6.1 Estimativa de uma média populacioal: grades amostras Defiição: Um estimador é uma característica amostral (como a média amostral x ) utilizada para obter uma aproximação de um parâmetro

Leia mais

Sucessão de números reais. Representação gráfica. Sucessões definidas por recorrência. Introdução 8. Avaliação 18 Atividades de síntese 20

Sucessão de números reais. Representação gráfica. Sucessões definidas por recorrência. Introdução 8. Avaliação 18 Atividades de síntese 20 Ídice Sucessão de úmeros reais. Represetação gráfica. Sucessões defiidas por recorrêcia Itrodução 8 Teoria. Itrodução ao estudo das sucessões 0 Teoria. Defiição de sucessão de úmeros reais Teoria 3. Defiição

Leia mais

Bases e dimensão. Roberto Imbuzeiro Oliveira. 22 de Março de 2012

Bases e dimensão. Roberto Imbuzeiro Oliveira. 22 de Março de 2012 Bases e dimesão Roberto Imbuzeiro Oliveira 22 de Março de 2012 1 Defiições básicas Nestas otas X é espaço vetorial com mais de um elemeto sobre o corpo F {R, C}. Uma base (ão ecessariamete LI) de X é um

Leia mais

Ordenação por Troca. Bubblesort Quicksort

Ordenação por Troca. Bubblesort Quicksort Ordeação por roca Bubblesort Quicksort ORDENAÇÃO Ordear é o processo de orgaizar uma lista de iformações similares em ordem crescete ou decrescete. Especificamete, dada uma lista de ites r[0], r[], r[2],...,

Leia mais

3ª Lista de Exercícios de Programação I

3ª Lista de Exercícios de Programação I 3ª Lista de Exercícios de Programação I Istrução As questões devem ser implemetadas em C. 1. Desevolva um programa que leia dois valores a e b ( a b ) e mostre os seguites resultados: (1) a. Todos os úmeros

Leia mais

FICHA de AVALIAÇÃO de MATEMÁTICA A 11.º Ano Versão 4

FICHA de AVALIAÇÃO de MATEMÁTICA A 11.º Ano Versão 4 FICHA de AVALIAÇÃO de MATEMÁTICA A.º Ao Versão Aluo: N.º Turma: Professor: Classificação: Apresete o seu raciocíio de forma clara, idicado todos os cálculos que tiver de efetuar e todas as justificações

Leia mais

Cálculo II Sucessões de números reais revisões

Cálculo II Sucessões de números reais revisões Ídice 1 Defiição e exemplos Cálculo II Sucessões de úmeros reais revisões Mestrado Itegrado em Egeharia Aeroáutica Mestrado Itegrado em Egeharia Civil Atóio Beto beto@ubi.pt Departameto de Matemática Uiversidade

Leia mais

Medidas de Posição. É igual ao quociente entre a soma dos valores do conjunto e o número total dos valores.

Medidas de Posição. É igual ao quociente entre a soma dos valores do conjunto e o número total dos valores. Medidas de Posição São as estatísticas que represetam uma série de dados orietado-os quato à posição da distribuição em relação ao eixo horizotal do gráfico da curva de freqüêcia As medidas de posições

Leia mais

Distribuições de Estatísticas Amostrais e Teorema Central do Limite

Distribuições de Estatísticas Amostrais e Teorema Central do Limite Distribuições de Estatísticas Amostrais e Teorema Cetral do Limite Vamos começar com um exemplo: A mega-sea de 996 a N 894 úmeros de a 6: Média: m 588 Desvio padrão: 756 49 amostras de 6 elemetos Frequêcia

Leia mais

CARTA DE CONTROLE PARA MONITORAMENTO DE FRAÇÃO DE CONFORMES UTILIZANDO UM NOVO ESTIMADOR

CARTA DE CONTROLE PARA MONITORAMENTO DE FRAÇÃO DE CONFORMES UTILIZANDO UM NOVO ESTIMADOR XXIX ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO. CARTA DE CONTROLE PARA MONITORAMENTO DE FRAÇÃO DE CONFORMES UTILIZANDO UM NOVO ESTIMADOR Ruth Pereira Loureço (USP) ruth.p.loureco@gmail.com Lida Lee Ho

Leia mais

A exponencial. Praciano-Pereira, Tarcisio

A exponencial. Praciano-Pereira, Tarcisio A expoecial Praciao-Pereira, Tarcisio 25 de jaeiro de 206 préprits da Sobral Matemática o. 206.0 Editor Tarcisio Praciao-Pereira tarcisio@member.ams.org Resumo Estou resolvedo, este artigo, a equação y

Leia mais

Métodos Quantitativos para Ciência da Computação Experimental Aula #4

Métodos Quantitativos para Ciência da Computação Experimental Aula #4 Métodos Quatitativos para Ciêcia da Computação Experimetal Aula #4 Jussara Almeida DCC-UFMG 2017 Measuremets are ot to provide umbers, but isights Metodologia de Comparação de Sistemas Experimetais Comparado

Leia mais

Mas o que deixou de ser abordado na grande generalidade desses cursos foi o estudo dos produtos infinitos, mesmo que só no caso numérico real.

Mas o que deixou de ser abordado na grande generalidade desses cursos foi o estudo dos produtos infinitos, mesmo que só no caso numérico real. Resumo. O estudo das séries de termos reais, estudado as disciplias de Aálise Matemática da grade geeralidade dos cursos técicos de liceciatura, é aqui estedido ao corpo complexo, bem como ao caso em que

Leia mais

MATEMÁTICA II. Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari

MATEMÁTICA II. Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari MATEMÁTICA II Profa. Dra. Amada Liz Pacífico Mafrim Perticarrari amada@fcav.uesp.br O PROBLEMA DA ÁREA O PROBLEMA DA ÁREA Ecotre a área da região que está sob a curva y = f x de a até b. S = x, y a x b,

Leia mais

Função Logarítmica 2 = 2

Função Logarítmica 2 = 2 Itrodução Veja a sequêcia de cálculos aaio: Fução Logarítmica = = 4 = 6 3 = 8 Qual deve ser o valor de esse caso? Como a fução epoecial é estritamete crescete, certamete está etre e 3. Mais adiate veremos

Leia mais

Secção 1. Introdução às equações diferenciais

Secção 1. Introdução às equações diferenciais Secção. Itrodução às equações difereciais (Farlow: Sec..,.) Cosideremos um exemplo simples de um feómeo que pode ser descrito por uma equação diferecial. A velocidade de um corpo é defiida como o espaço

Leia mais

Sequências Reais e Seus Limites

Sequências Reais e Seus Limites Sequêcias Reais e Seus Limites Sumário. Itrodução....................... 2.2 Sequêcias de Números Reais............ 3.3 Exercícios........................ 8.4 Limites de Sequêcias de Números Reais......

Leia mais

AULA Subespaço, Base e Dimensão Subespaço.

AULA Subespaço, Base e Dimensão Subespaço. Note bem: a leitura destes apotametos ão dispesa de modo algum a leitura ateta da bibliografia pricipal da cadeira TÓPICOS Subespaço. ALA Chama-se a ateção para a importâcia do trabalho pessoal a realizar

Leia mais

1 a Lista de PE Solução

1 a Lista de PE Solução Uiversidade de Brasília Departameto de Estatística 1 a Lista de PE Solução 1. a) Qualitativa omial. b) Quatitativa discreta. c) Quatitativa discreta. d) Quatitativa cotíua. e) Quatitativa cotíua. f) Qualitativa

Leia mais

1. Definição e conceitos básicos de equações diferenciais

1. Definição e conceitos básicos de equações diferenciais Capítulo 7: Soluções Numéricas de Equações Difereciais Ordiárias. Itrodução Muitos feómeos as áreas das ciêcias, egearias, ecoomia, etc., são modelados por equações difereciais. Supoa-se que se quer determiar

Leia mais

SEEC UNIVERSIDADE DO ESTADO DO RIO GRANDE DO NORTE UERN FACULDADE DE CIÊNCIAS EXATAS E NATURAIS FANAT DEPARTAMENTO DE CIÊNCIAS BIOLÓGICAS DECB

SEEC UNIVERSIDADE DO ESTADO DO RIO GRANDE DO NORTE UERN FACULDADE DE CIÊNCIAS EXATAS E NATURAIS FANAT DEPARTAMENTO DE CIÊNCIAS BIOLÓGICAS DECB Govero do Estado do Rio Grade do Norte Secretaria de Estado da Educação e da Cultura - SEEC UNIVERSIDADE DO ESTADO DO RIO GRANDE DO NORTE UERN FACULDADE DE CIÊNCIAS EXATAS E NATURAIS FANAT DEPARTAMENTO

Leia mais

ESCOLA ONLINE DE CIÊNCIAS FORMAIS CURSO DE INTRODUÇÃO À LÓGICA MATEMÁTICA (3) MÉTODO AXIOMÁTICO E TEORIAS FORMAIS AULA 10 VERDADE DE TARSKI (PARTE 1)

ESCOLA ONLINE DE CIÊNCIAS FORMAIS CURSO DE INTRODUÇÃO À LÓGICA MATEMÁTICA (3) MÉTODO AXIOMÁTICO E TEORIAS FORMAIS AULA 10 VERDADE DE TARSKI (PARTE 1) AULA 10 VERDADE DE TARSKI (PARTE 1) Iterpretação Uma iterpretação I de uma liguagem de primeira ordem cosiste em: Um domíio D de iterpretação; Para cada costate idividual, atribuímos como seu sigificado

Leia mais

Definição 1: Sequência é uma lista infinita de números reais ordenados.

Definição 1: Sequência é uma lista infinita de números reais ordenados. Cálculo I Egeharia Mecâica. Sequêcias Defiição : Sequêcia é uma lista ifiita de úmeros reais ordeados. 2º termo º termo Nome (x ) = (x, x 2, x,..., x,...) º termo º termo N R x Observação: Podemos pesar

Leia mais

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches CT34 Estruturas de Dados, Aálise de Aoritmos e Complexidade Estrutural Carlos Alberto Aloso Saches CT34 6) Ordeação HeapSort, QuicSort, Rede Bitôica A estrutura heap Heap é uma árvore biária com duas propriedades:

Leia mais