Busca. Busca. Exemplo. Exemplo. Busca Linear (ou Seqüencial) Busca em Vetores

Documentos relacionados
Ordenação. Notação. Notação. Alguns Métodos de Ordenação. Estabilidade x Instabilidade. Ordenação em Vetores

Universidade do Vale do Rio dos Sinos UNISINOS Programa de Pós-Graduação em Engenharia Mecânica. Ajuste de equações

Obtendo uma solução básica factível inicial. Método Simplex duas fases

1- Resolução de Sistemas Lineares.

Eixos e árvores Projeto para eixos: restrições geométricas. Aula 4. Elementos de máquinas 2 Eixos e árvores

Lista de Exercícios - Otimização Linear Profa. Maria do Socorro DMAp/IBILCE/UNESP. Método Simplex

Gabarito Sistemas Lineares

6.2 Sabendo que as matrizes do exercício precedente representam transformações lineares 2 2

DERIVADAS DAS FUNÇÕES SIMPLES12

Fernando Nogueira Dualidade 1

Física. Resolução das atividades complementares. F4 Vetores: conceitos e definições. 1 Observe os vetores das figuras:

( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) Fatorial [ ] = A. Exercícios Resolvidos. Exercícios Resolvidos ( ) ( ) ( ) ( )! ( ).

Solução da Terceira Lista de Exercícios Profa. Carmem Hara

Matriz-coluna dos segundos membros das restrições técnicas. Matriz-linha dos coeficientes das variáveis de decisão, em f(x) = [ c c ] [ 6 8] e C a

AUTOVALORES E AUTOVETORES

Seja o problema primal o qual será solucionado utilizando o método simplex Dual: (P)

EXERCÍCIOS RESOLVIDOS DE TEORIA DOS GRAFOS

Proposta de resolução do Exame Nacional de Matemática A 2016 (1 ạ fase) GRUPO I (Versão 1)

Exemplos relativos à Dinâmica (sem rolamento)

ANÁLISE DE ESTRUTURAS I

Universidade do Vale do Rio dos Sinos UNISINOS Programa de Pós-Graduação em Engenharia Mecânica. Ajuste de equações

Fusão (Intercalação) Exemplo. Exemplo. Exemplo. Exemplo. Ordenação por Fusão

Resolução Numérica de Sistemas Lineares Parte I

Módulo de Matrizes e Sistemas Lineares. Operações com Matrizes

MÉTODO DE HOLZER PARA VIBRAÇÕES TORCIONAIS

Muitas vezes, conhecemos a derivada de uma função, y = f (x) = F(x), e queremos encontrar a própria função f(x).

Exemplo: y 3, já que sen 2 e log A matriz nula m n, indicada por O m n é tal que a ij 0, i {1, 2, 3,..., m} e j {1, 2, 3,..., n}.

FACULDADE DE ENGENHARIA QUÍMICA DE LORENA DEPARTAMENTO BÁSICO PROF OSWALDO LUIZ COBRA GUIMARÃES

Revisão de Matemática Simulado 301/302. Fatorial. Análise combinatória

PARTE I. Figura Adição de dois vetores: C = A + B.

EXPOENTE. Podemos entender a potenciação como uma multiplicação de fatores iguais.

Programação II. Ordenação (sort) Bruno Feijó Dept. de Informática, PUC-Rio

Método de Gauss-Seidel

ANÁLISE DE ESTRUTURAS I

2 Teoria de membranas elásticas

Tecnologia de Grupo. 1. Justificativa e Importância da Tecnologia de Grupo. 2. Algoritmo de Ordenação Binária. = 1 se a máquina i

20/07/15. Matemática Aplicada à Economia LES 201

MATEMÁTICA PROFº ADRIANO PAULO LISTA DE FUNÇÃO POLINOMIAL DO 1º GRAU - ax b, sabendo que:

Sumário. Cálculo do juros compostos. Juros compostos conceitos. Cálculo do juros compostos. Exemplos. Engenharia Econômica e Finanças

Sumário. Cálculo dos juros compostos. Juros compostos conceitos. Exemplos. Cálculo dos juros compostos. Engenharia Econômica e Finanças

Prof. Ms. Aldo Vieira Aluno:

Aula 1b Problemas de Valores Característicos I

MÉTODOS NUMÉRICOS. Integração Numérica. por Chedas Sampaio. Época 2002/2003. Escola Náutica I.D.Henrique 1de 33

XI OMABC NÍVEL O lugar geométrico dos pontos P x, y cuja distância ao ponto Q 1, 2 é igual a y é uma:

x 0 0,5 0,999 1,001 1,5 2 f(x) 3 4 4,998 5,

(x, y) dy. (x, y) dy =

Unidimensional pois possui apenas uma única dimensão

Resolução. Capítulo 32. Força Magnética. 6. C Para que não haja desvio devemos garantir que as forças magnética ( F M. ) e elétrica ( F E

Resolução Numérica de Sistemas Lineares Parte I

Propriedades Matemáticas

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

1a Verificação Refino dos Aços I EEIMVR-UFF, Setembro de 2011 Prova A

Resumo com exercícios resolvidos do assunto: Aplicações da Integral

TÓPICOS. Exercícios. Os vectores que constituem as colunas da matriz, 1 = [ 2 0 1] T

1.3 O método da Decomposição LU A Decomposição LU. Teorema ( Teorema da Decomposição LU)

Método de Gauss- Seidel

Gabarito da 2ª Prova de 2ELE030 (03/06/2014) Circuitos Elétricos 1 Prof. Ernesto Ferreyra p.1/9

Departamento de Informática. Modelagem Analítica. Modelagem Analítica do Desempenho de Sistemas de Computação. Disciplina: Medida de Probabilidade

ÁLGEBRA LINEAR Equações Lineares na Álgebra Linear EQUAÇÃO LINEAR SISTEMA LINEAR GEOMETRIA DA ESQUAÇÕES LINEARES RESOLUÇÃO DOS SISTEMAS

Elementos de Análise - Lista 6 - Solução

Sistems Lineres Form Gerl onde: ij ij coeficientes n n nn n n n n n n b... b... b...

(B) (A) e o valor desta integral é 9. gabarito: Propriedades da integral Represente geometricamente as integrais para acompanhar o cálculo.

Primeira Prova de Mecânica A PME /08/2012

Física Geral e Experimental I (2011/01)

Material envolvendo estudo de matrizes e determinantes

CAP. VI Integração e diferenciação numéricas. 1. Introdução

Cálculo Numérico Módulo III Resolução Numérica de Sistemas Lineares Parte I

Recordando produtos notáveis

FONTES DISCRETAS DE INFORMAÇÃO

Problemas e Algoritmos

x u 30 2 u 1 u 6 + u 10 2 = lim (u 1)(1 + u + u 2 + u 3 + u 4 )(2 + 2u 5 + u 10 )

5.1 Método de Ponderação da Linha de Rotação

Escola Secundária com 3º ciclo D. Dinis 10º Ano de Matemática A. 6º Teste de avaliação versão2. Grupo I

UNIVERSIDADE FEDERAL DA BAHIA DEPARTAMENTO DE MATEMÁTICA MATA07 ÁLGEBRA LINEAR A PROFESSORES: Glória Márcia, Enaldo Vergasta. 1 a LISTA DE EXERCÍCIOS

RESUMO DE INTEGRAIS. d dx. NOTA MENTAL: Não esquecer a constante para integrais indefinidas. Fórmulas de Integração

6º Teste de avaliação versão1. Grupo I

FÍSICA MECÂNICA FORMULÁRIO 5 PESO, FORÇA DE ATRITO, TRABALHO, T.E.C. EXERCÍCIOS

Árvore estritamente binária É uma árvore onde todos os nós que não são folha possuem dois filhos.

4- Método de Diferenças Finitas Aplicado às Equações Diferenciais Parciais.

TP062-Métodos Numéricos para Engenharia de Produção Sistemas Lineares Métodos Iterativos

Métodos Numéricos Sistemas Lineares Métodos Iterativos. Professor Volmir Eugênio Wilhelm Professora Mariana Kleina

Noção intuitiva de limite

Angela Nieckele PUC-Rio DIFUSÃO

PROPRIEDADES DAS POTÊNCIAS

SERVIÇO PÚBLICO FEDERAL Ministério da Educação

Sub-algoritmos. Funções e Procedimentos. Funções. Funções. Funções. Função: Fluxo de Controle

Escalonamento de processos num sistema computacional multi-processo e uni-processador

Vitamina A Vitamina B Vitamina C Alimento Alimento Alimento

EQUAÇÃO DO 2 GRAU. Seu primeiro passo para a resolução de uma equação do 2 grau é saber identificar os valores de a,b e c.

3.1 Introdução Forma Algébrica de S n Forma Matricial de Sn Matriz Aumentada ou Matriz Completa do Sistema

1. Sejam R e S duas relações entre os conjuntos não vazios E e F. Então mostre que

Aula 09 Equações de Estado (parte II)

Exercícios. setor Aula 25

1.6- MÉTODOS ITERATIVOS DE SOLUÇÃO DE SISTEMAS LINEARES PRÉ-REQUISITOS PARA MÉTODOS ITERATIVOS

UNIVERSIDADE DE SÃO PAULO ESCOLA POLITÉCNICA

Universidade Estadual do Sudoeste da Bahia

Física. Física Módulo 1. Sistemas de Partículas e Centro de Massa. Quantidade de movimento (momento) Conservação do momento linear

Cinemática de Corpos Rígidos Cinética de Corpos Rígidos Métodos Newton-Euler Exemplos. EESC-USP M. Becker /67

REGRESSÃO LINEAR. À variável Y cujo comportamento se pretende estudar dá-se o nome de variável dependente.

Prova Escrita de MATEMÁTICA A - 12o Ano a Fase

Transcrição:

Busc e etores Prof. Dr. José Augusto Brnusks DFM-FFCP-USP Est ul ntroduz busc e vetores que está entre s trefs s freqüenteente encontrds e progrção de coputdores Serão borddos dos tpos de busc: lner (ou seqüencl) e bnár 1 Busc A hpótese básc ssud no processo de busc é que o conjunto de ddos, dentre o qul u deterndo eleento deve ser procurdo, possu tnho fxo, ou sej, u vetor: te [N]; onde te represent u estrutur de ddos contendo u cpo que tu coo chve pr pesqus e N é u constnte ndcndo o núero de eleentos typedef struct { nt key; // chve de busc... // des cpos d estrutur te; Objetvo d busc: ddo x encontrr [].key == x O índce resultnte perte cesso os des cpos 2 Busc Pr estudo, vos dtr que o tpo te sej coposto pens do cpo chve, ou sej, o ddo é própr chve. Alé dsso, pr fcltr o estudo nd s, chve de busc será u ntero, ou sej, o vetor será declrdo coo: Exeplo Busc de x = 19, retorn = 5 Busc de x = 45, retorn = 0 Busc de x = 8, retorn = 6 E busc de x =? nt [N]; ebrndo que N é u constnte que ndc o núero de eleentos do vetor Ass, objetvo d busc se resue ddo x encontrr [] == x 3 4 Exeplo Busc de x = 19, retorn = 5 Busc de x = 45, retorn = 0 Busc de x = 8, retorn = 6 E busc de x =? Depende d pleentção! Pode retornr = -1 (ou outro vlor) ndctvo que busc não teve êxto 5 Busc ner (ou Seqüencl) Utlzd qundo não há de nforções dcons sobre os ddos sere pesqusdos A busc lner tern qundo for stsfet u ds dus condções seguntes: 1. O eleento é encontrdo, sto é, [] == x 2. Todo o vetor fo nlsdo, s o eleento x não fo encontrdo Algorto: whle ( < N && []!= x) Ao térno do lço: Se == N então x não fo encontrdo senão [] == x, é posção onde x fo encontrdo 6 1

Busc ner (ou Seqüencl) Busc de x = 19 whle ( < N && []!= x) Busc ner (ou Seqüencl) Busc de x = 19 whle ( < N && []!= x) N 8 0 N 8 0 7 8 Busc ner (ou Seqüencl) Busc de x = 19 whle ( < N && []!= x) Busc ner (ou Seqüencl) Busc de x = 19 whle ( < N && []!= x) N 8 1 N 8 1 9 10 Busc ner (ou Seqüencl) Busc de x = 19 whle ( < N && []!= x) Busc ner (ou Seqüencl) Busc de x = 19 whle ( < N && []!= x) N 8 2 N 8 2 11 12 2

Busc ner (ou Seqüencl) Busc de x = 19 whle ( < N && []!= x) Busc ner (ou Seqüencl) Busc de x = 19 whle ( < N && []!= x) N 8 3 N 8 3 13 14 Busc ner (ou Seqüencl) Busc de x = 19 whle ( < N && []!= x) Busc ner (ou Seqüencl) Busc de x = 19 whle ( < N && []!= x) N 8 4 N 8 4 15 16 Busc ner (ou Seqüencl) Busc de x = 19 whle ( < N && []!= x) Busc ner (ou Seqüencl) Busc de x = 19 F whle ( < N && []!= x) N 8 5 N 8 5 17 18 3

Busc ner (ou Seqüencl) Exeplo e C++ Busc de x = 19 #nclude <ostre> usng nespce std; nt busc_sequencl(nt x, nt N, nt []) { nt whle ( < N && []!= x) N 8 5 Térno do lço: Se!= N então x fo encontrdo n posção do vetor 19 whle ( < N && []!= x) return ( == N)? -1 : ; nt n(vod) { const nt = 8; nt v[] = {45,56,12,43,95,19,8,67; Busc de 19 = 5 Busc de 45 = 0 Busc de 8 = 6 Busc de = -1 cout << "Busc de 19 = " << busc_sequencl(19,,v) << endl; cout << "Busc de 45 = " << busc_sequencl(45,,v) << endl; cout << "Busc de 8 = " << busc_sequencl(8,,v) << endl; cout << "Busc de = " << busc_sequencl(,,v) << endl; return 0; 20 Análse d Busc ner Busc ner co Sentnel E éd são efetuds N/2 coprções de chves pr encontrr u eleento prtculr x no vetor de N eleentos O por cso requerer N coprções de chves Isso pode consur uto tepo qundo o núero de eleentos do vetor é grnde O uso d sentnel te coo objetvo celerr busc, trvés d splfcção d expressão boolen A dé básc é fzer co que o eleento x sepre sej encontrdo Pr sso, ntroduz-se u eleento dconl no fnl do vetor 21 22 Busc ner co Sentnel Algorto: te [N+1]; [N] = x; // sentnel whle ([]!= x) Ao fnl do lço, == N plc que x não fo encontrdo (exceto o correspondente à sentnel). Busc de x = 56 [N] = x; whle ([]!= x) N 8 0 8 23 24 4

Busc de x = 56 [N] = x; whle ([]!= x) Busc de x = 56 [N] = x; whle ([]!= x) 8 8 N 8 0 56 N 8 0 56 Sentnel 25 26 Busc de x = 56 [N] = x; whle ([]!= x) Busc de x = 56 [N] = x; F whle ([]!= x) 8 8 N 8 1 56 N 8 1 56 27 28 Busc de x = 56 [N] = x; Busc de x = [N] = x; whle ([]!= x) whle ([]!= x) 8 8 N 8 1 56 N 8 0 Térno do lço: Se!= N então x fo encontrdo n posção do vetor 29 30 5

Busc de x = [N] = x; whle ([]!= x) Busc de x = [N] = x; whle ([]!= x) 8 8 N 8 0 N 8 0 Sentnel 31 32 Busc de x = [N] = x; whle ([]!= x) Busc de x = [N] = x; whle ([]!= x) 8 8 N 8 1 N 8 1 33 34 Busc de x = [N] = x; whle ([]!= x) Busc de x = [N] = x; whle ([]!= x) 8 8 N 8 2 N 8 2 35 36 6

Busc de x = [N] = x; whle ([]!= x) Busc de x = [N] = x; whle ([]!= x) 8 8 N 8 3 N 8 3 37 38 Busc de x = [N] = x; whle ([]!= x) Busc de x = [N] = x; whle ([]!= x) 8 8 N 8 4 N 8 4 39 40 Busc de x = [N] = x; whle ([]!= x) Busc de x = [N] = x; whle ([]!= x) 8 8 N 8 5 N 8 5 41 42 7

Busc de x = [N] = x; whle ([]!= x) Busc de x = [N] = x; whle ([]!= x) 8 8 N 8 6 N 8 6 43 44 Busc de x = [N] = x; whle ([]!= x) Busc de x = [N] = x; whle ([]!= x) 8 8 N 8 7 N 8 7 45 46 Busc de x = [N] = x; whle ([]!= x) Busc de x = [N] = x; F whle ([]!= x) 8 8 N 8 8 N 8 8 47 48 8

Busc de x = [N] = x; whle ([]!= x) N 8 8 8 Térno do lço: Se!= N então x fo encontrdo n posção do vetor. Coo == N, então x não fo encontrdo (exceto sentnel) 49 Exeplo e C++ #nclude <ostre> usng nespce std; nt busc_sentnel(nt x, nt N, nt []) { nt [N] = x; // sentnel whle ([]!= x) return ( == N)? -1 : ; nt n(vod) { const nt = 8; nt v[+1] ={45,56,12,43,95,19,8,67; Busc de 19 = 5 Busc de 45 = 0 Busc de 8 = 6 Busc de = -1 cout << "Busc de 19 = " << busc_sentnel(19,,v) << endl; cout << "Busc de 45 = " << busc_sentnel(45,,v) << endl; cout << "Busc de 8 = " << busc_sentnel(8,,v) << endl; cout << "Busc de = " << busc_sentnel(,,v) << endl; return 0; 50 Análse d Busc co Sentnel Busc Bnár E éd são efetuds (N+1)/2 coprções pr encontrr u eleento prtculr x no vetor de N eleentos O por cso requerer N+1 coprções Não é possível celerr busc se que se dsponh de ores nforções cerc do eleento ser loclzdo Sbe-se que u busc pode ser s efcente se os ddos estvere ordendos, ou sej: [0] <= [1] <= <= [N-1] A dé prncpl é de teste u eleento sortedo letorente, por exeplo, [], coprndo-o co o eleento de busc x. Se tl eleento for gul x, busc tern. Se for enor que x, conclu-se que todos os eleentos co índces enores ou gus pode ser elndos dos próxos testes. Se for or que x, todos queles eleentos co índces ores ou gus pode ser tbé elndos d busc. 51 52 Busc Bnár Busc de x = 19 Suponh = 3 N = 8 8 12 19 43 45 56 67 95 Coo [] > x, Eleentos co índces ores que pode ser elndos d busc 53 Busc Bnár Algorto: chou = flse; whle ( <= &&! chou) { = qulquer vlor entre e ; f ([] == x) chou = true; f ([] < x) = - 1; 8 12 19 43 45 56 67 95 N = 8 54 9

Busc Bnár Ebor escolh de sej prenteente rbtrár (no sentdo que o lgorto funcon ndependenteente dele) o vlor dest vrável nfluenc n efcênc do lgorto É clro que, cd psso, deve-se elnr o or núero possível de eleentos e futurs buscs A solução ót é escolher edn dos eleentos, porque el eln, e qulquer cso, etde dos eleentos do vetor 55 Busc Bnár A efcênc pode ser lgerente elhord trvés d perutção entre s dus cláusuls de coprção. A condção de guldde deve ser testd e segundo lugr, porque o sucesso ocorre pens u vez e todo o processo Poré, questão s relevnte se refere o fto de, coo n busc lner, se poder ou não encontrr u solução que proporcone u condção s sples pr fnlzção do processo É possível obter tl lgorto rápdo se for bndond et de ternr busc no nstnte exto e que for encontrdo o eleento pesqusdo Isso prece pouco ntelgente à prer vst, s observndo-se s fundo, pode-se perceber fclente que o gnho e efcênc e cd psso será or do que perd ocsond pel coprção de lguns poucos eleentos dcons 56 Busc Bnár ápd Algorto: whle ( < ) f ([] < x) Se o térno do lgorto condção [] == x for verdder, então x fo encontrdo n posção de ; cso contráro x não fo encontrdo. 57 Busc de x = 19 whle ( < ) f ([] < x) N = 8 8 12 19 43 45 56 67 95 58 Busc de x = 19 whle ( < ) f ([] < x) N = 8 8 12 19 43 45 56 67 95 Busc de x = 19 whle ( < ) f ([] < x) N = 8 8 12 19 43 45 56 67 95 59 60 10

Busc de x = 19 Busc de x = 19 whle ( < ) f ([] < x) N = 8 8 12 19 43 45 56 67 95 whle ( < ) f ([] < x) N = 8 8 12 19 43 45 56 67 95 61 62 Busc de x = 19 Busc de x = 19 whle ( < ) f ([] < x) N = 8 8 12 19 43 45 56 67 95 whle ( < ) f ([] < x) N = 8 8 12 19 43 45 56 67 95 63 64 Busc de x = 19 Busc de x = 19 whle ( < ) f ([] < x) N = 8 8 12 19 43 45 56 67 95 whle ( < ) f ([] < x) N = 8 8 12 19 43 45 56 67 95 65 66 11

Busc de x = 19 Busc de x = 19 whle ( < ) f ([] < x) N = 8 8 12 19 43 45 56 67 95 whle ( < ) f ([] < x) N = 8 8 12 19 43 45 56 67 95 67 68 Busc de x = 19 Busc de x = 19 whle ( < ) f ([] < x) N = 8 8 12 19 43 45 56 67 95 69 whle ( < ) f ([] < x) N = 8 8 12 19 43 45 56 67 95 Térno do lço: Coo [] == x, x fo encontrdo n posção de 70 Exeplo e C++ Análse d Busc Bnár ápd #nclude <ostre> usng nespce std; nt busc_bnr_rpd(nt x, nt N, nt []) { nt,,; whle ( < ) f ([] < x) return (x == [])? : -1; nt n(vod) { const nt = 8; nt v[+1] ={8,12,19,43,45,56,67,95; Busc de 19 = 5 Busc de 45 = 0 Busc de 8 = 6 Busc de = -1 cout << "Busc de 19 = " << busc_bnr_rpd(19,,v) << endl; cout << "Busc de 45 = " << busc_bnr_rpd(45,,v) << endl; cout << "Busc de 8 = " << busc_bnr_rpd(8,,v) << endl; cout << "Busc de = " << busc_bnr_rpd(,,v) << endl; return 0; 71 E éd são efetuds + log 2 (N)-1 + coprções de chves pr encontrr u eleento prtculr x no vetor de N eleentos O por cso requerer + log 2 N + coprções N 8 128 1.024 32.768 1.048.576 1.073.741.824 Nº Coprções (por cso) 10 15 20 30 1.099.511.627.776 40 10 80 266 3 7 72 12

Coprção Consderndo os lgortos de busc vstos, tbel segunte ostr orde de grndez dos núeros íno (C ín ), édo (C éd ) e áxo (C áx ) de coprções de chves. Coprção Núero de coprções Busc ner Algorto C ín C éd C áx Busc ner O(1) O(N) O(N) Busc ner co Sentnel O(1) O(N) O(N) Busc Bnár O(1) O(log 2 N) O(log 2 N) Busc Bnár ápd O(log 2 N) O(log 2 N) O(log 2 N) Busc Bnár 73 Núero de eleentos (N) 74 esuo Ds nálses dos lgortos de busc, está clro que o étodo de busc bnár te u desepenho tão bo ou elhor do que o étodo de busc lner Entretnto, tulzção dos índces esquerdo, dreto e édo (, e no lgorto, respectvente) requer tepo dconl Ass, pr vetores co poucos eleentos, busc lner é dequd Pr vetores co utos eleentos, busc bnár é s efcente, s sso requer que o vetor estej ordendo 75 13