Algoritmos de Pesquisa
|
|
- Flávio Cruz Padilha
- 7 Há anos
- Visualizações:
Transcrição
1 Algoritmos de Pesquisa Hugo Santos Miguel Fonseca 11 Abril 004 Conteúdo 1 Descrição dos algoritmos 1.1 Pesquisa sequencial Pesquisa Binária Pesquisa Ternária Analise de Complexidade 3.1 Pesquisa Sequencial Pior Caso Caso Médio Pesquisa Binária Pior Caso Caso Médio Pesquisa Ternária Pior Caso Caso Médio Analise Comparativa 6 A Implementação utilizada 8 A.1 impl.c A. tests.sh
2 Filhos a Esquerda Valores Inferiores No Pai Filhos a Direita Valores Superiores Figura 1: Partição do vector na pesquisa binária Descrição dos algoritmos 1.1 Pesquisa sequencial Figura : Codificação de uma árvore binária num vector ordenado O algoritmo de pesquisa sequencial envolve uma comparação elemento a elemento desde a primeira até à última posição do vector. Uma vez que o vector de entrada se encontra ordenado, quando a condição x > vect(k), onde x é o valor a ser pesquisado e k a posição corrente no vector, se verifica, consideramos imediatamente que o valor não se encontra no vector. 1. Pesquisa Binária Este algoritmo implementa o mesmo comportamento da pesquisa numa Árvore Binária, considerando que esta árvore se encontra codificada no vector de entrada (ver Figura ). Este algoritmo supõe que todos os nós descendentes do filho esquerdo (inclusivé) têm valor inferior ao valor do nó pai enquanto que os nós descendentes do filho direito (inclusivé) têm valor superior. Esta suposição é a base do algoritmo de pesquisa binária, seguindo a codificação da árvore binária, os filhos à esquerda correspondem uma partição do vector enquanto que os valores à direita correspondem a outra partição (ver Figura 1). Para um vector de tamanho n a profundidade máxima d da árvore será de d = log (n + 1), uma vez que o número máximo de elementos numa árvore de profundidade d é n = d Pesquisa Ternária A pesquisa ternária tem um comportamento semelhante à pesquisa binária relativamente à partição iterativa do vector de entrada. Cada partição é particionada em três sub-partições e os valores nas posições m 3 e m 3, onde m é o tamanho da partição, são comparados ao valor que está a ser pesquisado (ver Figura 3). Caso um destes
3 Valores menores que A A Valores entre A e B B Valores maiores que B Figura 3: Partição do vector na pesquisa ternária valores seja o valor que está a ser pesquisado o valor foi encontrado, senão continuamos o algoritmo numa das sub-partições. Caso a partição tenha um tamanho nulo o valor nao foi encontrado e se tiver tamanho unitário existe apenas uma folha e deve ser apenas comparado o valor nessa posição. O número de ciclos que o algoritmo vai executar (profundidade da árvore) é dado por log 3 (n + 1) Analise de Complexidade Tendo em conta que D n = { conjunto das possiveis instancias de um problema com tamanho n I D n, sendo I uma instância particular Considerando também p(i) - probabilidade de uma ocorrência e t(i) - número de operações para a instância I, ficamos com:.1 Pesquisa Sequencial.1.1 Pior Caso Pior Caso: W(n) = max t(i), com I D n Caso Médio: A(n) = p(i)t(i). com I D n No algoritmo de pesquisa sequencial, para uma entrada ordenada, o pior caso ocorre quando o elemento a pesquisar não existe no vector e é maior que qualquer elemento do vector (x > max(vect), onde x é o valor a ser pesquisado). Neste caso o algoritmo vai percorrer e compararar os valores em todas as posições do vector de entrada. Adicionalmente, caso o elemento a ser pesquisado se encontre na ultima posição do vector, também irão ser feitas o mesmo número de comparações e como tal esta situação é equivalente ao elemento nao existir. Seja n o tamanho do vector temos que logo W(n) = n W(n) O(n).1. Caso Médio Consideramos uma classe possivel: I k primeira ocorrência na k-esima posição, com k = 0, 1,..., n 1 Na class I k o algoritmo efectua t k = k + 1 comparações. Todas as ocorrências sao equiprovaveis, como tal têm probabilidade 1 n. n 1 A(n) = p(i k )t(i k ) k=0 3
4 n 1 1 A(n) = (k + 1) n k=0 A(n) = 1 n 1 (k + 1) n A(n) = 1 n k=0 ( n (n + 1) ) A(n) = 1 (n + 1) Logo. Pesquisa Binária..1 Pior Caso A(n) O(n) No algoritmo de pesquisa binária o pior caso ocorre mais uma vez quando o elemento a pesquisar não existe no vector de entrada e é também maior que qualquer valor da entrada (x > max(vect), onde x é o valor a ser pesquisado). É também Pior Caso quando o elemento a ser pesquisado é a ultimo elemento do vector uma vez que é uma situação que vai resultar no mesmo número de comparações. Vamos considerar inicialmente uma entrada de tamanho unitário. Para esta instância W(1) = ( comparações, x = vector(k) e x < vector(k)). Para n = n = 3 temos já uma árvore de profundidade. As comparações serão feitas na raiz e na folha. O caso para a folha foi já analizado, é W(1). Este caso mais o número de comparações na raiz (outras comparações) resultam em 4 comparações. Chegamos então à conclusão que vamos ter comparações por cada nó que visitamos, ou seja W(n) = W(1) profundidade arvore Especificámos inicialmente que a profundidade da árvore é dada por d = log (n + 1), o que resulta em Resultando em W(n) = W(1) log (n + 1) W(n) = log (n + 1) W(n) O(log (n)).. Caso Médio Considerando que a probabilidade de x < vect(k), onde x é o valor a ser pesquisado e k é a raiz da sub-árvore da iteração corrente, é igual a x > vect(k), em cada iteração são feitas 1+ = 3 comparações. k A(n) = (i + 1) n i i=0 j=1 Onde i representa o nível da árvore, ou iteração do algoritmo e j o número de nós no nível i. A(n) = A(n) = k 1 i=0 k 1 i=0 i 1 n (i + 1) j=1 3 1 n (i + 1)3 i k 1 (i + 1) i n i=0 4
5 Como k = log (n + 1) ( k 1 ) k 1 i + i i n n i=0 i=0 ( ( k 1) + ( + k (k )) ) n ( k (k 1) + 1 ) n ((n + 1)(log (n + 1) 1) + 1) n (nlog (n + 1) n + log (n + 1)) Concluindo n (n (log (n + 1) 1) + log (n + 1)) ( log (n + 1) 1 + log ) (n + 1) n ( ) 3 A(n) O log (n).3 Pesquisa Ternária.3.1 Pior Caso Mais uma vez o pior caso corresponde à pesquisa de um valor superior ao ultimo valor do vector, ou seja, x > max(vect). Consideramos inicialmente a maior instância em que esta situação se verifique e em que vai resultar apenas numa iteração. Temos então que n = 3, em que são feitas 4 comparações (pior caso em número de comparações numa só iteração). Usando a mesma estratégia que foi utilizada anteriormente, para n > 3, teremos o mesmo comportamento por partição que obtemos para o vector de n = 3. Teremos então que o pior caso W(n) = 4 número de partições k Como n = 3 k 1 temos Concluindo E ( ) n + 1 k = log 3 ( ) n + 1 W(n) = 4 log 3 W(n) 4log 3 ( n ).3. Caso Médio No algoritmo de pesquisa ternária, em cada iteracção temos cinco situacções distintas: x < vect(k 1 ), x = vect(k 1 ), vect(k 1 ) < x < vect(k ), x = vect(k ) e x > vect(k ). Vamos considerar que estas cinco situações são equiprovaveis, ou seja, p = 1 5. A cada situação está também associado num número de comparações distinto, sendo 1 para a primeira, para a segunda, 3 para a terceira e finalmente 4 comparações para as quarta e quinta situações. Para as instâncias que resultam apenas numa iteracção o número médio de comparações é então =
6 Sabendo o número médio de iteracções poderemos depois saber A(n). Uma vez que n = 3 k 1 ( ) n + 1 k = log 3 O número médio de iteracções vem quando m = n, então ( n k medio = log + 1 ) 3 A(n) = 14 5 k medio = 14 ( n ) 5 log 3 4 Concluimos que 3 Analise Comparativa A(n) 14 ( n ) 5 log 3 4 Tendo já efectuado uma série de experiência conclusivas e uma análise analitica aos algoritmos em estudo falta-nos ainda uma análise comparativa entre os vários algorimos. Devido à sua natureza linear, o algoritmo de pesquisa sequencial e bastante mau e não escala, tanto para entradas pequenas como grandes terão que ser feitas até n comparações para decidir se um determinado valor pertence ou não à entrada. Para a maior parte das aplicações este algoritmo não é aceitavel, para um vector de elementos serão feitas comparações. A sua inclusão neste trabalho serve meramente de exemplo uma abordagem não optimizada. Não são apresentados gráficos para este algoritmo pois é claro o seu comportamento linear médio e constante no pior caso. Embora pudesse prometer à partida devido à sua escalabilidade em log3(n) relativamente à entrada, o algoritmo de pesquisa ternária revelou-se uma pior escolha relativamente ao binário. Embora o número de iterações necessárias para uma determinada entrada seja menor, log3(n) vs. log(n), as condições necessárias ao algoritmo rapidamente elevam o número de comparações relativamente ao binário. Isto deve-se principalmente ao facto de se ter que escolher um de três ramos, enquanto no binário temos apenas que decidir uma de duas direcções. Na Figura 4 podemos observar o comportamento do algoritmo em entradas com vários tamanhos relativamente ao caso médio experimental, analitico e também ao pior caso. Como já foi referido, o algoritmo de pesquisa binária é o que obtem o melhor resultado nos parametros em análise. Ele é também o que escala melhor, necessitando cerca de 30 comparações em média para uma entrada de , e cerca de 40 comparações para uma entrada de posições. Na Figura 5 podemos observar o crescimento logaritmico tanto para o pior caso como para o caso médio relativamente ás entradas fornecidas previamente. Embora o número de comparações médio da pesquisa binária não seja muito menor que o da ternária, se observar-mos o pior caso já não podemos afirmar o mesmo, com a ternária a ter uma relação de 5 40 (medio pior) enquanto que o binário tem 3 para entradas de elementos. Nos gra ficos apresentados, o pior caso representa o pior caso descrito para os vários algoritmos (elemento não existir e ser superior a todos os elementos do vector) enquanto que o caso médio representa a média do número de comparações que foram efectuadas para todos os elementos do vector. 6
7 40 Exp. Ternary Worst Case Ternary Average Ternary Figura 4: Análise comparativa da experiência para o algoritmo de pesquisa ternária 35 Exp. Binary Worst Case Binary Analysis Avg Binary O(3/ log(n)) Figura 5: Análise comparativa da experiência para o algoritmo de pesquisa binária 7
8 A Implementação utilizada A.1 impl.c # i n c l u d e < s t d i o. h> # i n c l u d e < s t r i n g. h> # i n c l u d e < s t d l i b. h> i n t I n p u t ; i n t I n p u t S i z e ; enum { LOAD, COMPARE, S_ALU, ALU_DIV ; i n t C o u n t e r s [ 4 ] ; s t a t i c i n t Trace = 0 ; void R e s e t C o u n t e r s ( ) { memset ( Counters, 0, s i z e o f ( C o u n t e r s ) ) ; void P r i n t C o u n t e r s A n d R e s e t ( ) { p r i n t f ( " Loads : %i Compares : %i ALU: %i DIV : %i \ n ", C o u n t e r s [LOAD], C o u n t e r s [COMPARE], C o u n t e r s [S_ALU ], C o u n t e r s [ALU_DIV ] ) ; R e s e t C o u n t e r s ( ) ; i n t MemLoad ( i n t pos ) { C o u n t e r s [LOAD] ++; f p r i n t f ( s t d e r r, "MemLoad(% i ) = %i \ n ", pos, I n p u t [ pos ] ) ; return I n p u t [ pos ] ; i n t CompareLess ( i n t val1, i n t v a l ) { C o u n t e r s [COMPARE] ++; f p r i n t f ( s t d e r r, " CompareLess(%i, %i ) \ n ", val1, v a l ) ; return v a l 1 < v a l ; i n t CompareGreater ( i n t val1, i n t v a l ) { C o u n t e r s [COMPARE] ++; f p r i n t f ( s t d e r r, " CompareGreater(%i, %i ) \ n ", val1, v a l ) ; 8
9 return v a l 1 > v a l ; i n t CompareEqual ( i n t val1, i n t v a l ) { C o u n t e r s [COMPARE] ++; f p r i n t f ( s t d e r r, " CompareEqual(%i, %i ) \ n ", val1, v a l ) ; return v a l 1 == v a l ; i n t Add ( i n t op1, i n t op ) { C o u n t e r s [S_ALU ] ++; f p r i n t f ( s t d e r r, "Add(%i, %i ) = %i \ n ", op1, op, op1 + op ) ; return op1 + op ; i n t Sub ( i n t op1, i n t op ) { C o u n t e r s [S_ALU ] ++; f p r i n t f ( s t d e r r, " Sub(%i, %i ) = %i \ n ", op1, op, op1 op ) ; return op1 op ; i n t S h i f t R i g h t ( i n t op1, i n t op ) { C o u n t e r s [S_ALU ] ++; f p r i n t f ( s t d e r r, " S h i f t R i g h t (%i, %i ) = %i \ n ", op1, op, op1 >> op ) ; return op1 >> op ; i n t Div ( i n t op1, i n t op ) { C o u n t e r s [ALU_DIV] ++; f p r i n t f ( s t d e r r, " Div(%i, %i ) = %i \ n ", op1, op, op1 / op ) ; return op1 / op ; s t a t i c i n t s e q u e n t i a l _ s e a r c h ( i n t v a l u e ) { i n t i, r e g ; f o r ( i = 0 ; i < I n p u t S i z e ; i ++) { r e g = MemLoad ( i ) ; i f ( CompareEqual ( reg, v a l u e ) ) return i ; e l s e i f ( CompareGreater ( reg, v a l u e ) ) break ; 9
10 s t a t i c i n t b i n a r y _ s e a r c h ( i n t v a l u e ) { i n t s t, end, pos, r e g ; s t = 0 ; end = I n p u t S i z e ; while ( s t <= end ) { r e g = Sub ( end, s t ) ; r e g = S h i f t R i g h t ( reg, 1 ) ; pos = Add ( s t, r e g ) ; r e g = MemLoad ( pos ) ; i f ( CompareLess ( v alue, r e g ) ) { end = Sub ( pos, 1 ) ; e l s e i f ( CompareGreater ( v alue, r e g ) ) { s t = Add ( pos, 1 ) ; e l s e { return pos ; s t a t i c i n t t r e n a r y _ s e a r c h ( i n t v a l u e ) { i n t s t, end, p o sl, posr, tmp, r e g ; p o s l = s t = 0 ; p o s r = end = I n p u t S i z e ; while ( ( end s t ) > ) { tmp = Sub ( end, s t ) ; tmp = Div ( tmp, 3 ) ; p o s l = Add ( s t, tmp ) ; tmp = Add ( tmp, tmp ) ; p o s r = Add ( s t, tmp ) ; i f ( Trace ) { f p r i n t f ( s t d e r r, " \ tposl : %i PosR : %i \ n ", p o sl, p o s r ) ; r e g = MemLoad ( p o s l ) ; i f ( CompareLess ( v alue, r e g ) ) { end = Sub ( p o sl, 1 ) ; e l s e i f ( CompareEqual ( v alue, r e g ) ) { return p o s l ; e l s e { r e g = MemLoad ( p o s r ) ; i f ( CompareLess ( v alue, r e g ) ) { s t = Add ( p o sl, 1 ) ; end = Sub ( posr, 1 ) ; e l s e i f ( CompareEqual ( v alue, r e g ) ) { return p o s r ; 10
11 e l s e { s t = Add ( posr, 1 ) ; f o r ( ; s t < end ; s t ++) { r e g = MemLoad ( s t ) ; i f ( CompareEqual ( v alue, r e g ) ) return s t ; i n t main ( i n t argc, char argv [ ] ) { FILE fp ; i n t i ; i n t s t a r t = 1, end = 1; i n t i n c r e m e n t = 1 ; i n t ( s e a r c h ) ( i n t ) = s e q u e n t i a l _ s e a r c h ; i f ( a r g c < 4 ) { f p r i n t f ( s t d e r r, " Usage :. / impl < f i l e > < s i z e > < type >" ) ; f p r i n t f ( s t d e r r, " [ < s t a r t > <end > [ < i n c r e m e n t > ] ] \ n " ) ; I n p u t S i z e = a t o i ( argv [ ] ) ; i f ( I n p u t S i z e <= 0 ) { f p r i n t f ( s t d e r r, " I n v a l i d v a l u e \ n " ) ; i f (! strcmp ( argv [ 3 ], " t " ) ) { s e a r c h = t r e n a r y _ s e a r c h ; e l s e i f (! strcmp ( argv [ 3 ], " b " ) ) { s e a r c h = b i n a r y _ s e a r c h ; i f ( a r g c > 5 ) { s t a r t = a t o i ( argv [ 4 ] ) ; i f ( s t a r t < 0 ) { f p r i n t f ( s t d e r r, " I n v a l i d s t a r t i n d e x \ n " ) ; end = a t o i ( argv [ 5 ] ) ; i f ( end < 0 ) { f p r i n t f ( s t d e r r, " I n v a l i d end i n d e x \ n " ) ; i f ( a r g c > 6 ) { i n c r e m e n t = a t o i ( argv [ 6 ] ) ; i f ( i n c r e m e n t <= 0 ) { f p r i n t f ( s t d e r r, " I n v a l i d i n c r e m e n t \ n " ) ; 11
12 I n p u t = ( i n t ) m alloc ( s i z e o f ( i n t ) I n p u t S i z e ) ; i f (! I n p u t ) { f p r i n t f ( s t d e r r, " F a i l e d t o a l l o c a t e n e c e s s a r y memory. \ n " ) ; fp = fopen ( argv [ 1 ], " r " ) ; i f (! fp ) { f p r i n t f ( s t d e r r, " F a i l e d t o open i n p u t f i l e \ n " ) ; f o r ( i = 0 ; i < I n p u t S i z e ; i ++) { i f ( f s c a n f ( fp, "%i \ n ", &I n p u t [ i ] )!= 1 ) { f p r i n t f ( s t d e r r, " F a i l e d d u r i n g r e a d. \ n " ) ; f c l o s e ( fp ) ; R e s e t C o u n t e r s ( ) ; i f ( s t a r t < 0 ) { f o r ( i = 0 ; i < I n p u t S i z e ; i ++) { ( s e a r c h ) ( I n p u t [ i ] ) ; P r i n t C o u n t e r s A n d R e s e t ( ) ; e l s e { f o r ( i = s t a r t ; i < end ; i += i n c r e m e n t ) { ( s e a r c h ) ( i ) ; P r i n t C o u n t e r s A n d R e s e t ( ) ; f r e e ( I n p u t ) ; return 0 ; A. tests.sh #! / b i n / sh rm i r f r e s u l t s mkdir r e s u l t s cd r e s u l t s SIZES=" " f o r j i n $SIZES ; do.. / impl.. / ${ j p a r e s. d a t $ j b > S e a r c h P a i r B i n $ j 1
13 .. / impl.. / ${ j p a r e s. d a t $ j t > S e a r c h P a i r T e r $ j.. / impl.. / ${ j p a r e s. d a t $ j b 1 $ j > S e a r c h W o r s t P a i r B i n $ j.. / impl.. / ${ j p a r e s. d a t $ j t 1 $ j > S e a r c h W o r s t P a i r T e r $ j.. / impl.. / ${ j p a r e s. d a t $ j b $ ( ( $ j + 1 ) ) $ ( ( $ j + 3 ) ) \ > S e a r c h S i n g l e W o r s t P a i r B i n $ j.. / impl.. / ${ j p a r e s. d a t $ j t $ ( ( $ j + 1 ) ) $ ( ( $ j + 3 ) ) \ > S e a r c h S i n g l e W o r s t P a i r T e r $ j FILES=" S e a r c h P a i r B i n S e a r c h P a i r T e r S e a r c h W o r s t P a i r B i n " FILES+=" S e a r c h W o r s t P a i r T e r S e a r c h S i n g l e W o r s t P a i r B i n " FILES+=" S e a r c h S i n g l e W o r s t P a i r T e r " f o r i i n $FILES ; do c a t $ i $ j awk { p r i n t $4 > ${ i ${ j Prep echo n " $ j " >> ${ i Mean echo " l o a d ${ i ${ j Prep ; mean ( ${ i ${ j Prep ) " \ o c t a v e \ e g r e p e " ^ ans " \ awk { p r i n t $3 >> ${ i Mean done done 13
Métodos de Ordenação Parte 3
Estrutura de Dados II Métodos de Ordenação Parte 3 Prof a Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material baseado nos materiais do Prof. Robson Lins Classificação em Memória Primária
Leia maisÁrvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo
PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó
Leia maisÁrvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo
PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó
Leia maisÁrvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo
PMR2300 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó (exceto a
Leia maisHeapSort. Estrutura de Dados II Jairo Francisco de Souza
HeapSort Estrutura de Dados II Jairo Francisco de Souza HeapSort Algoritmo criado por John Williams (1964) Complexidade O(NlogN) no pior e médio caso Mesmo tendo a mesma complexidade no caso médio que
Leia maisDepartamento de Ciência de Computadores Estruturas de Dados (CC114) FCUP 2010/11. 2 o Teste: 20/Junho/2011
1. Cotação de cada pergunta: 1. 30 / 2. 35 / 3. 35 (Total: 100 pontos) 2. Responda às questões de forma clara e concisa nas folhas de exame distribuídas. 1. (Valorização: 30%) Responda às seguintes questões:
Leia maisÁrvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral
SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Listas e árvores Listas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral Diversas aplicações necessitam de estruturas
Leia maisAlgoritmos e Estruturas de Dados 2005/2006. Algoritmo: conjunto claramente especificado de instruções a seguir para resolver um problema
Vectores: Algoritmos de Pesquisa Algoritmos e Estruturas de Dados 2005/2006 Introdução Algoritmo: conjunto claramente especificado de instruções a seguir para resolver um problema noção de algoritmo muito
Leia maisÁrvores de Pesquisa. A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação.
Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação. Particularmente adequada quando existe necessidade de considerar todos ou alguma combinação
Leia maisPesquisa: operação elementar
Pesquisa: operação elementar uma das operações mais usadas em programação pesquisas em: vectores, matrizes, tabelas de registos, ficheiros, tipos de dados estruturados (hierarquicos),... necessidade de
Leia maisÁrvores Binárias de Busca
Árvores Binárias de Busca SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto
Leia maisCAL ( ) MIEIC/FEUP Estruturas de Dados ( )
Conjuntos Disjuntos R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes FEUP, MIEIC, CPAL, 2010/2011 1 Conjuntos Disjuntos Objectivo resolver eficientemente o problema da equivalência estrutura
Leia maisConjuntos disjuntos. Objectivo resolver eficientemente o problema da equivalência estrutura de dados simples (vector) implementação rápida
Conjuntos disjuntos Objectivo resolver eficientemente o problema da equivalência estrutura de dados simples (vector) implementação rápida Desempenho análise complicada Uso problemas de grafos equivalência
Leia maisÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ÁRVORES BINÁRIAS DE BUSCA Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REFERÊNCIA Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Cap. 4 INSTITUTO DE COMPUTAÇÃO
Leia maisPesquisa em Memória Primária Árvores de Busca. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Pesquisa em Memória Primária Árvores de Busca David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar
Leia maisAlgoritmos e Estruturas de Dados 2006/2007
Filas de prioridade Algoritmos e Estruturas de Dados 2006/2007 Filas de prioridade Uma fila de prioridade permite, pelo menos, duas operações sobre um conjunto de valores comparáveis: inserção de um elemento
Leia maisAlgoritmos de Busca em Vetores
Algoritmos de Busca em Vetores INF1005 Programação I Prof. Hélio Lopes lopes@inf.puc-rio.br sala 408 RDC 1 busca em vetores tópicos busca linear (sequencial) busca binária referência Capítulo 17 do livro
Leia maisÁrvores de pesquisa. Árvores de pesquisa equilibradas
Árvores VL Árvores Splay Árvores Árvores de pesquisa Árvores Vermelho-Preto Árvores e Árvores Multidimensionais quaternárias k-d [Árvores para Pesquisa Lexicográfica tries multivia tries binárias PTRII]
Leia maisAula 16: Pesquisa em Memória Primária - Árvores de Busca. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP
Aula 16: Pesquisa em Memória Primária - Árvores de Busca Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para
Leia maisPesquisa Linear. Adriano J. Holanda 15/3/2016
Pesquisa Linear Adriano J. Holanda 15/3/2016 Busca Linear em memória principal Introdução O dados estarão sempre armazenados na memória principal (DRAM 1 ): não há necessidade de acesso à memória secundária
Leia maisUNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio;
UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio; e-mail: sandra@icmc.usp.br Lista de Exercícios Árvores, Árvores Binárias, Árvores
Leia maisOrdenação: QuickSort. Prof. Túlio Toffolo BCC202 Aula 15 Algoritmos e Estruturas de Dados I
Ordenação: QuickSort Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 15 Algoritmos e Estruturas de Dados I QuickSort Proposto por Hoare em 1960 e publicado em 1962. É o algoritmo de ordenação
Leia maisAlgoritmos de Pesquisa e Ordenação em Vectores
Algoritmos de Pesquisa e Ordenação em Vectores FEUP - MIEEC Programação 2-2008/2009 Pesquisa Sequencial Problema (pesquisa de valor em vector): Verificar se um valor existe no vector e, no caso de existir,
Leia maisFilas de prioridade. Algoritmos e Estruturas de Dados AED 2005/2006 AEDA 2009/2010
Filas de prioridade Algoritmos e Estruturas de Dados AED 2005/2006 AEDA 2009/2010 Qual a Utilidade das Filas de Prioridade? Trabalhos maiores devem ser executados no fim (mesmo que não tenha sido o último
Leia maisESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES
ESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES Listas de Prioridades! Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade! A prioridade associada a um dado pode
Leia maisProgramação de Computadores II. Cap. 17 Busca
Programação de Computadores II Cap. 17 Busca Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:
Leia maisINSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados
INSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados Ano Lectivo de 2004/2005 2 o Semestre RESOLUÇÃO DA REPESCAGEM DO 2 o TESTE B I. (2.0+1.5+1.5 = 5.0 val.) a) Qual das seguintes declarações pode
Leia maisProgramação II. Busca em Vetor (search) Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Busca em Vetor (search) Bruno Feijó Dept. de Informática, PUC-Rio Busca em Vetor Problema: Entrada: vetor v com n elementos elemento d a procurar Saída m se o elemento procurado está em
Leia mais6. Pesquisa e Ordenação
6. Pesquisa e Ordenação Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 6. Pesquisa e Ordenação Estruturas de Dados 1 / 30 Pesquisa de Informação A pesquisa eficiente de informação
Leia maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 13: Ordenação: MergeSort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes Email: reifortes@iceb.ufop.br
Leia maisAula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária. Túlio Toffolo
Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária Túlio Toffolo www.decom.ufop.br/toffolo Pesquisa em Memória Primária n Introdução - Conceitos Básicos n Pesquisa Sequencial n Pesquisa Binária n Árvores
Leia maisAula 28: Listas de Prioridades
28.1 Aula 28: Listas de Prioridades Conceitos básicos Definição de heap Alteração de prioridades 28.2 Listas de Prioridades Motivação: Os dados possuem prioridades. A prioridade de um dado pode variar
Leia maisÁrvores Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação
1 Árvores Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 2 Árvore Binária de Busca Definição: uma árvore binária de busca (ABB) é uma árvore binária na qual
Leia maisLista 1. 8 de abril de Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b.
Lista 1 8 de abril de 2013 1 Exercícios Básicos 1.1 Na bibliografia Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b. 1.2 Outros 1. Projete
Leia maisDepartamento de Ciência de Computadores Estruturas de Dados (CC114)
1. Cotação de cada pergunta: 1. 30 / 2. 40 / 3. 30 (Total: 100 pontos) 2. Responda às questões de forma clara e concisa nas folhas de exame distribuídas. 1. (Valorização: 30%) Responda às seguintes questões:
Leia maisINF 1620 P3-25/11/05 Questão 1 Nome:
INF 1620 P3-25/11/05 Questão 1 Dizemos que uma matriz quadrada é um quadrado mágico se a soma dos elementos de cada linha, a soma dos elementos de cada coluna e a soma dos elementos de sua diagonal principal
Leia maisComplexidade de algoritmos Notação Big-O
Complexidade de algoritmos Notação Big-O Prof. Byron Leite Prof. Tiago Massoni Engenharia da Computação Poli - UPE Motivação O projeto de algoritmos é influenciado pelo estudo de seus comportamentos Problema
Leia maisAlgoritmos de pesquisa
Define-se pesquisa como a operação que permite encontrar ou concluir que não existe, um dado elemento num dado conjunto. A pesquisa de um elemento pode ser feita num conjunto ordenado ou não. Quando o
Leia maisMétodo de ordenação - objetivos:
Método de ordenação - objetivos: Corresponde ao processo de rearranjar um conjunto de objetos em uma ordem ascendente ou descendente. Facilitar a recuperação posterior de itens do conjunto ordenado. São
Leia maisINSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados
INSTITUTO SUPERIOR TÉCNICO Algoritmos e Estruturas de Dados Ano Lectivo de 2002/2003 2 o Semestre 2 o Teste A 9 de Junho de 2003 Duração: 2h - O teste é sem consulta. - Para cada questão com escolha múltipla
Leia maisUniversidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula
Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Tópicos Introdução Árvore digital Árvore digital binária
Leia maisUNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO
Disciplina: Estrutura de Dados II Turma: 4EC/5CC Data: 13/11/15 Nota: Professor: Renato E. N. de Moraes Semestre: 2015-2 Valor: 0,0 pts Aluno: Lista de exercícios 04 1. O que é a eficiência assintótica
Leia maisÁrvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira
Árvores SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Listas e árvores Listas lineares Um nó após o outro, adjacentes Nó sucessor e antecessor Diversas aplicações necessitam de estruturas
Leia maisListas de Prioridade. Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC.
Listas de Prioridade Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Capítulo 6 Prioridade } Algumas aplicações precisam recuperar rapidamente um dado
Leia maisÁrvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich
Árvores Binárias SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista. Figuras editadas por Isadora Maria Mendes http://www.icmc.usp.br/~paulovic
Leia maisÁrvores e Mapas. Luís Lopes. Estruturas de Dados DCC-FCUP
Árvores e Mapas Luís Lopes DCC-FCUP Estruturas de Dados Estruturas não lineares Os arrays e as listas são exemplos de estruturas de dados lineares, cada elemento tem: um predecessor único (excepto o primeiro
Leia mais3. Vectores: Algoritmos de Pesquisa. João Pascoal Faria (versão original) Ana Paula Rocha (versão 2004/2005) Luís Paulo Reis (versão 2005/2006)
3. Vectores: Algoritmos de Pesquisa João Pascoal Faria (versão original) Ana Paula Rocha (versão 2004/2005) Luís Paulo Reis (versão 2005/2006) FEUP - MIEEC Prog2-2006/2007 Introdução Algoritmo: conjunto
Leia maisBusca em Regiões Ortogonais
Busca em Regiões Ortogonais Claudio Esperança Paulo Roma 1 O problema O problema O problema consiste em recuperar objetos tipicamente pontos que intersectam ou estão contidos numa região simples do espaço
Leia maisAnálise de Algoritmos
Análise de Algoritmos Parte 1 Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 04 Algoritmos e Estruturas de Dados I Qual a diferença entre um algoritmo e um programa? Como escolher o algoritmo
Leia maisAlgoritmos e Estrutura de Dados II. Árvore AVL. Prof a Karina Oliveira. Fonte: Prof a Ana Eliza
Algoritmos e Estrutura de Dados II Árvore AVL Prof a Karina Oliveira kkco@dei.unicap.br Fonte: Prof a Ana Eliza Árvores Binárias de Busca Objetivo da Utilização Minimizar o número de comparações efetuadas,
Leia maisÁrvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura
Árvores B Prof. Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Fonte: Material da Prof a Ana Eliza Lopes Moura Situação Problema Memória Principal Volátil e limitada Aplicações Grandes
Leia maisFontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros:
Fontes Bibliográficas Estruturas de Dados Aula 15: Árvores Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo 5; Estruturas
Leia maisDepartamento de Ciência de Computadores Estruturas de Dados (CC114)
1. Cotação de cada pergunta: 1. 32 / 2. 38 / 3. 30 (Total: 100 pontos) 2. Responda às questões de forma clara e concisa nas folhas de exame distribuídas. 1. (Valorização: 32%) Responda às seguintes questões:
Leia maisMedida do Tempo de Execução de um Programa. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP
Medida do Tempo de Execução de um Programa Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo estudo
Leia maisDicionários. TAD Orientado a conteúdo
Dicionários TAD Orientado a conteúdo Dicionários efinição: Tipo abstrato de dados orientado a onteúdo. Contrasta com as PILHAs e FILAs que são orientadas a posição. perações implementadas: Inserir(d,x)
Leia maisINSTITUTO SUPERIOR TÉCNICO Introdução aos Algoritmos e Estruturas de Dados
INSTITUTO SUPERIOR TÉCNICO Introdução aos Algoritmos e Estruturas de Dados Ano Lectivo de 2006/2007 2 o Semestre 2 o Teste A - 2 de Julho de 2007 Duração: 2h - O teste é sem consulta. - Para cada questão
Leia maisAlgoritmos e Estrutura de Dados II. Árvore AVL. Prof Márcio Bueno. / Material da Prof a Ana Eliza
Algoritmos e Estrutura de Dados II Árvore AVL Prof Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material da Prof a Ana Eliza Árvores Binárias de Busca Objetivo da Utilização Minimizar
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Programação II 2º Semestre Frequência 2 (8 valores) Resolução 30/05/2018 A. Análise de complexidade dos algoritmos 1. (0.75 val) Considere a seguinte função em C: void funcao
Leia maisAula 15: Pesquisa em Memória Primária. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP
Aula 15: Pesquisa em Memória Primária Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Pesquisa em Memória Primária Introdução - Conceitos Básicos Pesquisa Sequencial Pesquisa Binária Árvores de
Leia mais5. Análise de Complexidade de Algoritmos. João Pascoal Faria (versão original) Ana Paula Rocha (versão 2003/2004) Luís Paulo Reis (versão 2005/2006)
5. Análise de Complexidade de Algoritmos João Pascoal Faria (versão original) Ana Paula Rocha (versão 2003/2004) Luís Paulo Reis (versão 2005/2006) FEUP - MIEEC Prog 2-2006/2007 Introdução Algoritmo: conjunto
Leia mais8. Árvores. Fernando Silva DCC-FCUP. Estruturas de Dados. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38
8. Árvores Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38 Árvores - estruturas não lineares (1) Uma lista é um exemplo de uma estrutura de dados
Leia mais8. Árvores. Fernando Silva. Estruturas de Dados DCC-FCUP. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38
8. Árvores Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38 Árvores - estruturas não lineares (1) Uma lista é um exemplo de uma estrutura de dados
Leia maisPrincípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP
Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Árvores Binárias Árvores Árvores representam estruturas de dados caracterizadas por uma relação hierárquica da informação:
Leia maisAnálise de complexidade
Introdução Algoritmo: sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador) Estratégia: especificar (definir propriedades) arquitectura
Leia maisHeapSort Filas de Prioridade Heap. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
HeapSort Filas de Prioridade Heap David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Filas de Prioridades É uma estrutura de dados onde a chave de cada item reflete sua habilidade relativa de
Leia maisMedida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo
Leia maisConjuntos disjuntos. Relações de equivalência
Conjuntos disjuntos Objectivo resolver eficientemente o problema da equivalência estrutura de dados simples (vector) implementação rápida análise complicada Uso problemas de grafos equivalência de tipos
Leia maisFilas de Prioridade. Uma fila de prioridade pode ser vista como uma generalização das filas com as seguintes duas operações:
Filas de Prioridade e Heaps 9.1 Filas de Prioridade Uma fila de prioridade pode ser vista como uma generalização das filas com as seguintes duas operações: inserir um elemento na fila; remover o elemento
Leia mais7. Introdução à Complexidade de Algoritmos
7. Introdução à Complexidade de Algoritmos Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 7. Introdução à Complexidade de Algoritmos Estruturas de Dados 1 / 1 Análise de Algoritmos
Leia maisAula 13: Ordenação - Heapsort. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP
Aula 13: Ordenação - Heapsort Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Filas de Prioridades É uma estrutura de dados onde a chave de cada item reflete sua habilidade relativa de abandonar
Leia maisAula 20: Árvores Binárias de Busca. Algoritmos de busca e inserção
0.1 Aula 0: Árvores Binárias de Busca Conceitos básicos Algoritmos de busca e inserção Caminhos externo e interno 0. Problema de busca s i = chave S = { s 1,..., s n }, s 1
Leia maisProgramação II. Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio Árvores Dados organizados de maneira hierárquica Exemplos: arquivos em diretórios, subdivisão de espaço 2D em um
Leia maisAlgoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.
Algoritmos e Estrutura de Dados II Árvore Prof a Karina Oliveira kkco@dei.unicap.br Introdução Estruturas de dados lineares (pilha, fila) são estruturas que guardam coleções de elementos que são acessados
Leia maisINF1007: Programação 2 7 Busca em Vetores. 01/04/2014 (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 7 Busca em Vetores 01/04/2014 (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Busca em vetor Busca linear Busca binária 01/04/2014 (c) Dept. Informática - PUC-Rio 2 Busca em
Leia maisÁrvores de Pesquisa (Parte I)
Baseado no material do Prof. Reinaldo Fortes para o curso de 2014-01 Arquivo original: 21._arvores_(parte_1) Árvores de Pesquisa (Parte I) Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Algoritmos
Leia maisÁrvores Equilibradas. Sumário
Árvores Equilibradas Sumário Splay Vermelho Preto AA e BB Multidimensionais quaternárias k d Pesquisa Lexicográfica tries multivia tries binárias PATRICIA Árvores Equilibradas Sumário Árvores AVL Árvores
Leia maisEstruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 17 - Busca 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Leia maisSCC-601 Introdução à Ciência da Computação II. Ordenação e Complexidade Parte 3. Lucas Antiqueira
SCC-60 Introdução à Ciência da Computação II Ordenação e Complexidade Parte 3 Lucas Antiqueira Ordenação: Utiliza uma estrutura de dados chamada heap para ordenar. Um heap é um vetor (array) que representa
Leia maisFilas de prioridade. Marcelo K. Albertini. 27 de Novembro de 2014
Filas de prioridade Marcelo K. Albertini de Novembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover
Leia maisAula 08. Estruturas de dados Árvore e Grafo
Logo Aula 08 Estruturas de dados Árvore e Grafo 2 Árvore Estruturas estudadas até agora não são \ adequadas para representar dados que devem ser dispostos de maneira hierárquica Ex., hierarquia de pastas
Leia maisFilas de prioridade. Marcelo K. Albertini. 3 de Dezembro de 2013
Filas de prioridade Marcelo K. Albertini de Dezembro de / Filas de prioridade O que é uma fila de prioridade? Estrutura de dados que generaliza a ideia de ordenação. Coleções de elementos: inserir e remover
Leia maisInformática Parte 17 Prof. Márcio Hunecke
Escriturário Informática Parte 17 Prof. Márcio Hunecke Informática BUSCA SEQUENCIAL E BUSCA BINÁRIA SOBRE ARRAYS Busca sequencial em vetores não ordenados O termo busca sequencial (ou busca linear) expressa
Leia maisALGORITMOS E ESTRUTURAS DE DADOS 2011/2012 ANÁLISE DE ALGORITMOS. Armanda Rodrigues 3 de Outubro 2011
ALGORITMOS E ESTRUTURAS DE DADOS 2011/2012 ANÁLISE DE ALGORITMOS Armanda Rodrigues 3 de Outubro 2011 2 Análise de Algoritmos Temos até agora analisado soluções de problemas de forma intuitiva A análise
Leia maisPesquisa em Árvores Digitais. Adaptado de David M.
Pesquisa em Árvores Digitais Adaptado de David M. Pesquisa Digital Pesquisa digital é baseada na representação das chaves como uma seqüência de caracteres ou de dígitos. Os métodos de pesquisa digital
Leia maisÁrvores. Prof. Byron Leite Prof. Tiago Massoni Prof. Fernando Buarque. Engenharia da Computação. Poli - UPE
Árvores Prof. Byron Leite Prof. Tiago Massoni Prof. Fernando Buarque Engenharia da Computação Poli - UPE Motivação Para entradas realmente grandes, o acesso linear de listas é proibitivo Estrutura de dados
Leia mais7. Introdução à Complexidade de Algoritmos
7. Introdução à Complexidade de Algoritmos Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 7. Introdução à Complexidade de Algoritmos Estruturas de Dados 1 / 1 Análise de Algoritmos
Leia maisVectores: Algoritmos de Ordenação. Algoritmos e Estruturas de Dados 2008/2009
Vectores: Algoritmos de Ordenação Algoritmos e Estruturas de Dados 2008/2009 Ordenação Problema (ordenação de vector) rearranjar os n elementos de um vector (v) por ordem crescente, ou melhor, por ordem
Leia maisDiagramas Sintáticos
Diagramas Sintáticos Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt) Classe pública com método main Cada classe X pública é declarada num ficheiro
Leia maisAlgoritmos e Estruturas de Dados 2005/2006
Filas de prioridade Algoritmos e Estruturas de Dados 2005/2006 Filas de prioridade Uma fila de prioridade permite, pelo menos, duas operações sobre um conjunto de valores comparáveis: inserção de um elemento
Leia maisINF 1620 P4-01/07/08 Questão 1 Nome:
INF 1620 P4-01/07/08 Questão 1 Escreva uma função em C que receba duas strings, cujos caracteres estão ordenados em ordem crescente, e retorne uma nova string alocada dinamicamente, que contém todos os
Leia maisESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres
ESTRUTURA DE DADOS E ALGORITMOS Árvores Binárias de Busca Cristina Boeres Árvore Binária de Busca 30! construída de tal forma que, para cada nó: nós com chaves menores estão na sub-árvore esquerda nós
Leia maisÁrvores AVL e Árvores B. Jeane Melo
Árvores AVL e Árvores B Jeane Melo Roteiro Árvores Binárias Árvores AVL Definição Motivação Balanceamento Operações de rebalanceamento Árvores B Introdução Árvores Binárias Árvores binárias Cada nó tem
Leia maisRecursividade. Métodos iterativos. Prof. Cesar Augusto Tacla. Métodos iterativos utilizam estruturas de repetição
Recursividade Prof. Cesar Augusto Tacla Métodos iterativos Métodos iterativos utilizam estruturas de repetição For While Do while Normalmente, um método invoca outros métodos, não a si mesmo. 2 1 Recursividade
Leia maisÁrvores. Estruturas de Dados. Prof. Vilson Heck Junior
Árvores Estruturas de Dados Prof. Vilson Heck Junior Árvores INTRODUÇÃO Introdução Árvores são estruturas de dados utilizadas para armazenar e recuperar dados de forma rápida e eficiente; Árvores não são
Leia maisProva de Recuperação PMR3201/PMR2300 1o. semestre 2015 Prof. Thiago Martins
Prova de Recuperação PMR21/PMR2 1o. semestre 2 Prof. Thiago Martins Instruções: screva o nome e o número USP na folha de papel almaço. 1. (2 pontos) Uma pilha é uma estrutura de dados na qual o elemento
Leia maisAlgoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1
Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1 - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) PIP/CA - Programa Interdisciplinar de Pós-Graduação
Leia mais