Sei sulla pagina 1di 7

GRAFOS O primeiro teorema da teoria dos grafos(Euler, 1736). Oque so grafos ?

um conjunto de objetos e ligaes (relaes) entre eles, alguns chamam de rede, representado graficamente (pontos e linhas), os objetos so chamados de vrtices e as ligaes, de arestas. Operaes sobre grafos: Elementares: Binrias: Insero de aresta ou vrtice Unio Retirada de aresta ou vrtice Interseco Rotao de vrtice Diferena Juno de dois vrtices Inverso do sentido Caractersticas dos diferentes tipos de grafos: Cardinalidade ou ordem: numero de arestas e numero de vrtices. Vrtices adjacentes: em grafos no orientados so todas as arestas de cada vrtice, em grafos orientados, so todas as flechas que chegam em cada vrtice.(destino) Incidncia:1,2 so incidentes de 1(origem), 1,2,4 so incidentes 1(destino). Grau: quantas arestas cada vrtice tem. Grafo orientado: grau de emisso(quantas arestas saem do 2), grau de recepo(quantas arestas chegam no 2). Vrtices conexos: se existe apenas um caminho entre eles. Circuito: caminho fechado primeiro vrtice o ultimo(1,2,3,4,1). Ciclo: circuito simples, nenhum vrtice aparece + de 1 vez, exceto o primeiro/ultimo. Lao: flecha que vai no mesmo vrtice(1.1). Comprimento: nmero de arestas que podem ser percorridos a partir de um vrtice at outro. Numero cromtico: menor numero de cores para colorir um grafo, v.adjcentes cores dif. Os grafos podem ser classificados em relao a: 1) Sentido das arestas Orientado ou no orientado. 2) Parcialidade Parcial(mesmo conjuntos de vrtices, mas no de arestas). Sub Grafo(n de vrtices inferiores, mas n de arestas igual dos v.existentes). Sub Grafo Parcial( || , mas n de arestas no igual dos v.existentes). 3) Numero de arestas Multi Grafo(ao menos um par de vrtices ligados por duas ou mais arestas). 4) Cardinalidade Grafo denso ou Pouco Povoado. 5) Conexo Conexo(Possui 1 caminho que passa por todos). No conexo(No possui nenhum caminho que passa por todos). Fortemente Conexo(Todos os vrtices chegam em todos). 6) Completude Completo(No orientado, todos vrtices chegam em todos). Grafo Vazio(sem arestas). Grafo Simples(no tem laos e nem mais de uma aresta unindo dois vrtices). 7) Simplicidade Grafo Complexo(possui laos ou mais de uma aresta unindo dois vrtices). 8) Representao Planar Grafo Planar(As linhas no se cruzam). No Planar(As linhas se cruzam). 9) Regularidade Grafo Regular(Todos vrtices mesmo grau). 10) Valores Valorado(com pesos ou valores). No Valorado(sem pesos ou valores). 11) Estrutura Grafo Arvores(sem ciclos, n v. e a.s(n-1),s ou n/conexo+1 linha = ciclo). Grafo Rede(Grafo valorado, sem laos 1 vertice inicio e 1 fim). 12) Casos especiais Grafos Isomorfos(so idnticos, mesmo numero de vrtices/arestas/relaes).

Orientado matriz adjacncia 1 se i adjacente a j 0 caso contrario

No orientado 1 2 3 matriz adjacncia 1 0 1 1 simetrica a diagonal 2 1 0 1 3 0 0 0 Matriz incidncia n arco v arestas lista adjacencia -1 se i origem a j e 1 -> 2 -> 3 +1 se i destino a j r 2 -> 3 0 demais vrtices t 3 ->

1 2 3 1 0 1 1 2 1 0 1 3 1 1 0

Percursos Profundidade: vai do primeiro at o ultimo, e volta marcando o caminho. Amplitude: vai do primeiro at o ultimo, guardando em 1 fila o caminho percorrido. Grafos Eulerianos: um caminho que percorre todas as arestas de um grafo apenas uma nica vez.

a euleriano e b semi euleriano. ex: problema do desenho da casa, assassinato e pavimentao de estradas. Grafo Hamiltoniano: um caminho que passa exatamente uma vez por cada vrtice em um grafo.

a hamiltoniano e b no hamiltoniano. ex: caixeiro viajante, cavalo de xadrez e da vida em marte. ARQUIVOS estrutura de dados x estrutura de arquivos ns x registros listas x arquivos tudo na memoria principal x tudo na memoria externa, partes p/m.principal quando necessrio. Objetivo da organizao de arquivos: Fornecer caminhos de acesso aos registros nos processos de recuperao e atualizao (Busca eficiente). entidade: objeto sobre o qual se armazenam informaes(aluno, cliente, funcionrios). Atributos: propriedades caractersticas da entidade(nome, matricula, curso). Classe de entidades: conjunto de entidades(aluno de uma universidade). Instancias: valores dos atributos(a matricula do joao 75800). Registro de entidade: conjunto de pares<atributo, valor do atributo> que identifica a entidade. Tabela ou Array: conjuntos de registros de uma classe de entidades mantidos em memoria principal. Registro lgico: formado por um conjunto de campos ou atributos, unidade bsica de informao. Registro fsicos: coleo de registros lgicos. Bloco: menor unidade de transferncia entre o arquivo e a memoria principal. Fator de bloco: quantidade de registros lgicos que existem em um bloco(registro fsico). Chave: forma de acesso a registros, representa um subconjunto de campos. Chave primaria: representa um campo que identifica um registro unicamente no arquivo. Chave secundaria: representa um campo que identifica um registros de um arquivo(dif/primaria). Chave de ordenao: chave que estabelece a sequencia dos registros no arquivo. Chave de acesso: chave pela qual o registro desejado ser acessado. Argumento de pesquisa: valor da chave de acesso numa operao. Arquivo: qualquer conjunto de informaes que mantenha alguma unidade lgica, conjuntos de registros de uma classe de entidades mantidos em memoria secundaria. TIPOS DE ACESSO: Serial: a obteno do registro que segue ao ultimo acessado. Sequencial: a obteno do registro que segue ao ultimo acessado, sequencia dada p/chave de ordenao. Aleatrio: a indicao do registro desejado feita atravs da especificao do argumento de pesquisa. Mtodos de recuperao e atualizao: em tempo real: o tempo de resposta para uma consulta no superior a alguns segundos, em lote(batch): o tempo de resposta, no crtico, processamento de pedidos em

conjunto. Representao lgica: armazenam. e recuperao de dados expressos em termos de arqui. e reg. Representao fsica: mapeam. feito pelo so dos reg. e arq. nos dispositivos de armazenamento. Memria primaria(interna) e Memria secundaria(externa). DISPOSITIVOS DE ARMAZENAMENTO EXTERNO Caractersticas dos dispositivos: Consiste em uma unidade e um meio de armazenamento. Custo por armazenamento quanto vale cada dado armazenado (bytes/R$). Capacidade (espao ocupado pelo arquivo) quantidade total de informaes armazenadas (bytes). Portabilidade (armazenamento off-line) facilidade de transporte. Custo de acesso quanto mais rpido o acesso aos dados, mais caro. Tamanho do registro tamanho do bloco a ser lido/gravado. Mtodos de acesso tipos de mtodos de acesso. Velocidade de transferncia velocidade em que os dados trafegam entre o dispositivo e a memria. Tempo de posicionamento tempo de posicionamento da cabea de leitura sobre a informao. Latncia (para acionar a unidade de disco) tempo para atingir a velocidade ideal para que os dados sejam lidos. Compartilhamento capacidade do equipamento de ser compartilhado com mais usurios simultaneamente. Exemplos: Fitas, Discos, Disquete, CD, Pen Drive, Memria Flash. Fatores que influenciam na escolha: A freqncia do uso do arquivo (rapidez); O potencial de crescimento do arquivo (espao); A disponibilidade de organizaes de arquivo suportadas pelo sistema de programas disponvel ao usurio (simplicidade); As linguagens de programao dos programas que requeiram os arquivos (disponibilidade). Medidas utilizadas para avaliar: Memria necessria; Tempo necessrio para leitura de um determinado registro; Tempo necessrio para leitura do registro seguinte; Tempo necessrio para acrescentar um registro; Tempo necessrio para alterar valores de itens de dados de um registro; Tempo necessrio para ler todos os registros de um arquivo; Tempo necessrio para reorganizar um arquivo. Um dos mtodos para escolher uma organizao para uma determinada aplicao : Determinar os requisitos de processamento do arquivo para aquela aplicao. Escolher a organizao de arquivo que melhor satisfaa aos requisitos determinados anteriormente. Verificar se a organizao em questo possui suporte a nvel de sistema operacional e/ou um pacote do sistema. Tipos de Organizao de Arquivos: ARQUIVOS SERIAIS Registros armazenados e acessados em ordem linear L registro i depois de i-1. Os registros so armazenados conforme so gerados. O tempo para obter um registro elevado, sendo necessrio pesquisar desde o primeiro registro. Para ver que o registro no existe necessrio ler todo o arquivo. Possuem marca de fim de arquivo (EOF). Registros so gravados na ordem de sua incluso. Acesso de registros: O acesso aos dados segue a ordem de incluso dos registros. Leitura exaustiva: de registros Realizada pesquisando-se todos os registros do arquivo, lendo-os serialmente, um aps o outro. Insero de registros: A insero sempre feita no final do arquivo. Excluso de registros: Atravs da criao de um campo FLAG que serve para indicar se o registro est excludo ou no. Quando se deseja apagar aquele registro, marca-se o FLAG do mesmo, indicando que foi excludo. Alteraes de registros: Requer a localizao do registro a ser modificado, sendo feita a atualizao no lugar ou excluso do registro com marcao de excluso e a incluso de novo registro no fim do arquivo. A excluso real ocorre durante a reorganizao do arquivo. Reorganizao de arquivos: Atravs da cpia do arquivo original para um novo arquivo, com eliminao de registros marcados para excluso. ARQUIVOS SEQUENCIAIS Registros armazenados em ordem ascendente ou descendente do valor de um ou mais de seus atributos (chave). Os registros so dispostos ordenadamente, obedecendo seqncia determinada pela chave de ordenao. Para ver que o registro no existe necessrio ler seqencialmente desde o primeiro at encontrar a chave maior que argumento de pesquisa. Acesso mais rpido e atualizao mais complexa. Vantagem/desvantagem: Facilita os acessos quando a chave de acesso coincide com a chave de ordenao. Caso contrrio, ser necessria uma pesquisa (seqencial ou serial) no arquivo seqencial.

Exemplo de aplicaes: Cobrana peridica de servios pblicos; Gerao das listas de presena das escolas; Confeco das folhas de pagamento de empregados; Extrao dos tales de cobrana de cliente, outros. Acesso de registros Serial (seqencial): examinar seqencialmente as entradas verificando a chave procurada, encerrando quando achar ou quando chegar no final. Aleatrio (randmico): o registro desejado especificado como argumento. A ordem dos acessos no representa a ordem fsica. Serial (seqencial) - Fisicamente Obteno do registro que segue ao ltimo acessado na seqncia ditada pela chave de ordenao. Eficiente por estarem os registros fisicamente armazenados de acordo com a seqncia na qual so solicitados (bloco). A maioria dos registros estaro na memria. Mdia de acessos para encontrar um registro: (NR + 1)/2 Aleatrio A indicao do registro feita pela especificao de um argumento. A forma como os registros so acessados, necessariamente, no mantm relao com a ordenao fsica do arquivo. Insero de registros: Consiste na insero de registros em um arquivo T (transao), ordenados pela chave de ordenao. Posteriormente, os arquivos S e T so intercalados ( balanced line), gerando o arquivo A (verso atualizada de S). Por que criar T? insero de um registro, causa deslocamento dos demais (muito caro); T usado como uma extenso de S, at assumir um tamanho que justifique a efetivao da operao de intercalao. Excluso de registros: Implementado como a incluso, sendo as indicaes de excluso no mesmo arquivo T para posterior efetivao das operaes. Excluso de registros (lgica): Pode ser implementada com o uso de um campo adicional que in dica o estado de cada registro. Durante o processamento do arquivo seqencial, os registros marcados so desconsiderados. Alterao de registros: Permite a modificao de um ou mais atributos do registro. O registro deve ser localizado, lido e seus campos alterados, aps, gravados novamente. Muito caro atualizar. Alterao de registros Problemas: a alterao faz com que o registro assuma um tamanho maior do que o original assim, o registro no poder ser gravado por falta de espao; a alterao modifica o valor do campo que determina a seqncia dos registros dentro do arquivo (chave de ordenao) - implica na mudana de posio do registro. Por este motivo, esta operao implementada da mesma forma que a incluso e excluso, com o uso do arquivo T, incluso seguida de alterao . Leitura exaustiva de registros: Leitura de todos os registros do arquivo, na seqncia da chave de ordenao. Exige a manipulao dos arquivos S e T. So desconsiderados os registros marcados (excludos). O prximo registro a ser considerado aquele que possuir a menor chave, entre o prximo de S e o prximo de T. Reorganizao de arquivos: Consiste na gerao de um arquivo seqencial A, obtido pela intercalao de S com T. Esta operao precede, geralmente, ao uso do arquivo seqencial para a emisso de relatrios ou efetivao de consultas. O arquivo T usualmente empregado apenas nesta operao de reorganizao e no registro das atualizaes, nos demais casos, usa-se o arquivo reorganizado. Seriais: Pouco usado, Quando no tem ordem necessria para acesso ou processamento, No precisa consultas randmicas, Quando so poucos registros. Seqenciais: Mais usado e conhecido, Quando se quer acessar processar todos os registros do, arquivo na ordem da chave (varredura), Quando a incluso, excluso e alterao podem ser adiados, No precisa consultas randmicas. ARQUIVO SEQUENCIAL INDEXADO Arquivo seqencial indexado, que consiste em um arquivo seqencial acrescido de: NDICE = coleo de pares: <chave_acesso, endereo_no_arquivo> REA DE EXTENSO utilizada para operaes de incluso, para registros excedentes. A rea ocupada pelo NDICE formada pelo par <chave, endereo>, ocupando um espao menor. O endereo identifica a posio onde est armazenado o registro na memria secundria. Permite o acesso rpido ao endereo de um registro, dado um argumento de pesquisa. Um NDICE pode ser estruturado em vrios nveis, tornando a pesquisa mais eficiente. Alternativas para implementar ndices: 1) Densos: registro de ndice para todo valor de chave do arquivo. 2) Esparsos: registro de ndice apenas para alguns registros de dados (bloco). 3) Com nveis: quantidade de nveis do ndice. A localizao de um registro feita em 2 etapas: 1. consultado o ndice e determinado o bloco no qual deve estar o registro. 2. O bloco selecionado pesquisado, sendo localizado o registro desejado. usual a implementao de ndices sob a forma de uma rvore-B. Area de Overflow: Contm os registros inseridos aps a criao do arquivo e constitui uma extenso da rea principal de dados do arquivo. Estas reas so necessrias para permitir a alterao das entradas de ndices, a cada atualizao do arquivo.

Quando usar: Necessidade de recuperao de poucos registros no justificando a pesquisa seqencial. Necessidade de manter o arquivo sempre organizado e atualizado para consultas, relatrios, outros. Acesso de registros: O acesso seqencial pode ser feito diretamente na rea de dados, levando em considerao a rea de extenso (por meio dos elos). No acesso aleatrio utiliza-se o ndice. O argumento de pesquisa define o caminhamento sobre o ndice, que conduz ao endereo do registro ou bloco. necessria ainda a pesquisa seqencial nos Elos, que pode requerer acesso rea de extenso. Incluso de registros: Busca do registro por meio do ndice, para determinar o local onde deve ser inserido o novo registro: Com campo ELO para cada registro: o registro inserido na lista de extenso do seu sucessor na rea principal. Com campo ELO para cada bloco: o registro inserido na rea de extenso se a sua chave for maior do que a do ltimo registro da rea principal. Caso contrrio, o ltimo registro da rea principal deslocado para a rea de extenso e o novo inserido na sua posio dentro do bloco principal, podendo requerer o deslocamento dentro deste bloco. Em algumas implementaes, as inseres so feitas em endereos liberados por excluses ou reservados para este fim (na gerao do arquivo). Neste caso, no so utilizadas reas de extenso. Deve haver uma lista dos excludos. Excluso de registros: Atravs da criao de uma marca excludo em um campo adicional do registro que indica o seu estado. O campo estado deve ser consultado nas demais operaes. Os registros marcados devem ser desconsiderados. Alteraes de registros: Requer a localizao do registro a ser modificado, por meio do ndice. Se a alterao no envolve a chave de ordenao e no aumenta o comprimento do registro, seus campos so alterados e gravados na mesma posio. Caso contrrio, a alterao feita pela excluso e incluso do registro atualizado (utiliza a rea de extenso). Leitura exaustiva de registros: feita sobre a rea de dados, segundo a seqncia da chave de ordenao. A leitura inclui os registros localizados nas reas de extenso, os quais so acessados por meio dos campos de ELO da rea principal. Reorganizao de arquivos: medida que um arquivo sofre inseres e excluses, a performance vai piorando, pela necessidade de acessos cada vez mais freqentes s reas de extenso e desconsiderao dos excludos. A reorganizao consiste em uma leitura exaustiva e transferncia de todos os registros para uma nova rea, sendo todos colocados na rea principal, liberando a rea de extenso. Os excludos so fisicamente retirados do arquivo. Aps a cpia dos dados, um novo ndice deve ser gerado. Esta operao deve ser programada para horrios no qual o arquivo no esteja sendo utilizado. Um critrio para o ponto de reorganizao baseado na percentagem de ocupao das reas de extenso (75%, por exemplo). ARQUIVO INDEXADO Arquivos de acesso direto no so adequados ao processamento seqencial (ordenado). Arquivos seqenciais no so adequados recuperao seletiva de registros. Arquivos seqenciais indexados procuram apresentar comportamento satisfatrio para recuperao seletiva e seqencial de registros, no entanto, gera muitos inconvenientes na insero, em relao s reas de extenso e necessidade de reorganizao peridica. Quando a necessidade de consultas aleatrias so maiores que as seqenciais, no compensa manter a seqencialidade fsica. Possibilidade de pesquisa por meio de diversas chaves e seus valores. Arquivo indexado no qual os registros so acessados sempre atravs de um ou mais ndices: No h compromisso com a ordem fsica dos registros no arquivo. O registro pode ser armazenado em qualquer endereo. Vantagem: maior flexibilidade que permite maior eficincia nas operaes de insero e reorganizao. A rea de dados fica desordenada, Podem existir tantos ndices quantas forem as chaves. As entradas do ndice so ordenadas pela chave de acesso, constitudas pelo par <chave, endereo> do registro, A seqencialidade fsica das entradas no ndice visa tornar mais eficiente o processo de busca, permitindo acesso serial ao arquivo. Exaustivo: uma entrada para cada registro. Seletivo: possui entradas para um subconjunto dos registros. O subconjunto definido por uma condio relativa chave e/ou a outros atributos. Primrio: ndice da chave primria. Secundrio: tambm classificado pelo valor da chave, que pode ser duplicado (chaves secundrias). Acesso de registros: feito com a utilizao de um dos ndices. O acesso serial requer uma leitura do disco, para a obteno de cada registro (l diretamente o arquivo fsico). O acesso aleatrio requer uma busca sobre o ndice chave de acesso para obter o endereo desejado e ento apenas um acesso ao arquivo. Insero de um registro: O registro armazenado em qualquer endereo vago. A seguir, seus pares <chave, endereo> relativos s chaves de acesso so inseridos nos ndices correspondentes. Existe a necessidade de manuteno dos ndices. Excluso de um registro: liberada a rea de dados ocupada pelo registro (reaproveitada) e so removidas as entradas dos ndices. A remoo de uma entrada de um ndice pode ser de modo direto (fsica) ou marcando

a entrada correspondente ao registro excludo, pela substituio do endereo do registro por endereo invlido. Quando h ndices seletivos, o problema determinar em quais deles o registro excludo referenciado, para que sejam removidas as entradas. Avaliar cada uma das condies de seleo relativas aos ndices, para o caso de registro excludo. Alterao de um registro: O endereo do registro a ser alterado identificado pelo ndice, caso contrrio, o endereo deve ser conhecido. Se a alterao no aumenta o comprimento, os campos so alterados e os ndices so atualizados. Caso contrrio, a alterao feita pela excluso e incluso atualizada. Leitura exaustiva dos registros: Deve existir pelo menos um ndice exaustivo. Assim, a leitura pode ser feita por meio de sucessivos acessos ao arquivo. Reorganizao do arquivo: Esta operao no usualmente exigida pelos arquivos indexados, visto que os espaos liberados na rea de dados so reutilizados nas operaes de insero. Apenas precisa ser feita sobre o ndice se ele tiver atualizao prorrogada. No h necessidade da ordenao fsica, Mais necessidade de consultas aleatrias. Vantagens: mais rapidez na consulta, possibilidade de consultas compostas (vrias chaves-ndices). Desvantagens: alto custo de manuteno do ndice, complexidade de manuteno dos ndices. ARQUIVOS DIRETOS Um arquivo direto consiste na instalao dos registros em endereos determinados com base no valor de uma chave primria, de modo que se tenha acesso rpido aos registros especificados por argumentos de pesquisa, sem que haja necessidade de percorrer uma estrutura auxiliar (ndice). O objetivo principal a obteno de acesso aleatrio eficiente. Em um arquivo direto, ao invs do ndice usada uma funo que calcula o endereo do registro a partir do argumento de pesquisa. Os principais mtodos de organizao so: dicionrio de dados e endereamento indireto. Para consultar: um determinado registro, percorrido o dicionrio para encontrar o seu endereo. Em seguida, o endereo do arquivo acessado de forma direta para obteno dos demais dados referentes ao registro. Para incluir: um registro em um arquivo direto que mantido por dicionrio os seguintes passos so tomados. Se desejar, percorre-se o dicionrio para no haver repetio de chave, aps feita a identificao do endereo do novo registro, sendo este a primeira posio livre do arquivo, ento se inclui os dados em arquivo no endereo antes identificado e por ltimo inclui-se a chave e o respectivo endereo no dicionrio. Para excluir: um registro em um arquivo direto que mantido por dicionrio percorre-se o dicionrio a partir da chave do registro, em busca do respectivo endereo, ento feita a invalidao da chave no dicionrio e, opcionalmente no arquivo para enfim ajustar-se a estrutura de maneira que seja possvel aproveitar os espaos livres. Mas entre os indexados e os diretos constitudo duas importantes diferenas, que uma delas a que no modo de arquivo direto o endereo mantm uma ligao com o valor da chave do registro em questo e a outra que se tratando de acessos seriais, os arquivos diretos no do suporte a estes. Arquivo direto uma das formas que se pode utilizar para gravar dados em um arquivo, na qual resulta em um formato de acesso direto, ou seja, o acesso ira incidir exatamente sobre o registro procurado. ARQUIVOS INVERTIDOS Arquivos invertidos tm como funo a de auxiliar outros tipos de arquivos na indexao de registros, que estes, geralmente so construdos com base em chaves primrias e endereos de registros, em arquivos invertidos a indexao feita pelos valores de atributos. Fazendo assim o caminho inverso.Esse tipo de arquivo constitudo basicamente de dois campos, um com o valor do atributo e outro com sua lista de ocorrncias. O arquivo primrio pode ter quantos arquivos invertidos forem necessrios. Podem ser usados vrios arquivos invertidos na mesma consulta. Caso o arquivo primrio sofra alguma mudana no endereo dos registros os arquivos invertidos devero ser refeitos, pois as referncias na lista de ocorrncia estaro inconsistentes. O acesso: a um registro muito rpido aps a identificao no arquivo invertido. A Incluso: aps a insero do novo registro no arquivo primrio, identificam-se ento os arquivos invertidos existentes e os campos indexados por cada um. Em seguida procura-se pelo valor do atributo indexado do novo registro e mapeia-se o endereo do registro no arquivo invertido na lista de ocorrncias, caso o valor do atributo do novo registro no constar no arquivo invertido insere-se esse novo valor com sua primeira ocorrncia no novo registro. A Atualizao: ao atualizar um campo do registro que faz parte de um atributo de um arquivo invertido a referncia deve ser removida a anterior a inserida a nova. A Excluso: ao excluir um registro do documento primrio as referencias a este endereo nos arquivos invertidos devem ser removidas. A Consulta: a consulta em arquivos se torna muito dinmica por arquivos invertidos. a importncia dos arquivos invertidos como auxiliador de indexao. Permitindo-nos fazer buscas mais rpidas, dinmicas, complexas ou filtragem de dados por um ou mais valores ao mesmo tempo. amplamente

usada em livros na criao de sumrios e glossrios. COLISO EM ARQUIVOS DIRETOS Quando usado o acesso direto, h sempre de se considerar as colises, pois esta uma consequncia do uso das funes no determinsticas, em que so transformados os valores da chave de acesso para os endereos do arquivo. A coliso ocorre quando dois valores diferentes so atribudos a um mesmo endereo. Como um endereo de arquivo pode ser atribudo a apenas um registro, necessrio um procedimento para alocar um outro endereo afim de armazenar o registro que provocou a coliso. Endereamento Aberto: quando ocorre uma coliso, realizada uma busca sobre o arquivo afim de localizar um endereo vazio. Mtodos de busca: Pesquisa sequencial: Na insero de um registro com chave C, para ele gerado o endereo E=F(C). , ento, usado, o primeiro endereo livre na sequncia E+1, E+2, ..., E+n. Pesquisa no Bloco: A funo aleatorizada gera para cada registro o endereo de um bloco. Assim, os registros associados a um mesmo bloco so neles armazenados. Quando o bloco destinado ao registro j est completamente ocupado, o registro inserido no primeiro endereo livre dos blocos seguintes. Realeatorizao: Quando o bloco endereado por E = F(C) est completamente ocupado, ao invs de tentar a insero nos blocos seguintes, como na soluo da Pesquisa no Bloco, calculado o endereo de um outro bloco E = F'(E, C). No endereamento aberto todos os registros so armazenados na prpria tabela hash, isto , no h listas nem elementos gravados fora da tabela, evitando assim o uso de ponteiros. O ganho ao utilizar endereamento aberto que a quantidade de memria usada para armazenar ponteiros revertida no o tamanho da tabela, possibilitando menos colises e aumentando a velocidade de recuperao das informaes. Quanto a parte de insero de um novo elemento, analisado sucessivamente a tabela at ser localizado um slot livre, onde h a possibilidade de armazenar o elemento. Porm h alguns contras ao utilizar o endereamento aberto, um deles que no possvel armazenar mais elementos que o tamanho mximo da tabela e outro que remover um elemento da tabela torna-se uma tarefa difcil e cara. Para remover um elemento no basta marcar o slot como vazio, pois isto tornaria impossvel recuperar qualquer elemento cuja insero encontrou o slot ocupado. Uma soluo seria criar um flag, que seria atribuda a condio de removido. Encadeamento Puro: para cada posio em que ocorre a coliso criado uma rea de armazenamento auxiliar, externa a tabela hash. Normalmente esta lista organizada como uma lista encadeada, que guarda todas as chaves que foram mapeadas para a mesma posio da tabela. No momento da busca, se a posio correspondente chave na tabela estiver ocupada por outra chave, preciso percorrer apenas a lista encadeada que correspondente quela posio at encontrar a chave ou alcanar o final da lista. Este esquema tem a seguinte caracterstica, que a liberao do vnculo entre a chave e o endereo fsico de um registro, visto que as chaves so associadas a endereos na tabela. Para realizar uma pesquisa no encadeamento puro, o header da lista acessado na rea de dados. Em seguida, a lista percorrida at ser localizado um registro com chave igual ao argumento de pesquisa. Ao inserir um registro, o endereo E, da rea de dados, examinado, e caso esteja livre, o registro ali inserido. Caso o endereo E esteja ocupado por um registro do grupo, o novo armazenado no endereo livre mais prximo e E inserido como segundo da lista. Por fim, se o endereo E estiver ocupado por um registro no pertencente ao grupo, este deslocado para a posio livre mais prxima e o novo registro armazenado em E. A excluso de um registro procede da seguinte forma, o registro acessado conforme descrito na pesquisa, se necessrio, colocado o valor de excludo no seu campo de estado. Caso esteja encadeado em alguma lista de coliso, pode ser dela removido, ou no, dependendo da opo adotada na implementao. COMPRESSAO DE ARQUIVOS Compresso: tem como objetivo diminuir o tamanho fsico de determinada informao. Compactao: tem como objetivo juntar as informaes que ainda no foram reunidas. Um exemplo disso uma grande perda de desempenho quando se compacta arquivos de grande porte e a dificuldade do cdigo trabalhar com rvores binrias e leituras recursivas para a formao do cdigo de Huffman e na montagem de sua cadeia de bits e leitura, juntamente pela rvore de Huffman para quando realizada a descompactao. O mtodo de Huffman em percentual de compactao melhor, mas em questo de desempenho ele perde para o LZW, pois tem que manter o balanceamento de rvore, gerando tempo de pesquisa por esse motivo o mtodo de Lempel-Ziv mais usado. Enquanto no Lzw ele j cria as bibliotecas em um dicionrio com blocos que facilitam no momento da pesquisa, otimizando o processo de codificao.

Potrebbero piacerti anche