Please enable JavaScript.
Coggle requires JavaScript to display documents.
MM7 - Coggle Diagram
MM7
Conjunto
Pode ser descrito como operação não ordenada (possivelmente vazia) de itens distintos chamados de elementos do conjunto
Um conjunto específico é definido por uma listagem explicita de seus elementos
Ex: S= {2,3,5,7}
Ou pela especialização de uma propriedade que todos os elementos do conjunto e somente eles devem satisfazer
Ex: S= {n: n é um número primo menor que 10}
-
-
-
Hashing
-
-
Se escolhermos uma tabela hash de tamanho m menor que o número de chave n, ocorrera colisões (fenômeno em que duas ou mais chaves estão sendo criptografadas na mesma célula da tabela hash), mas pode ocorrer mesmo se m for maior que n.
Com um tamanho de tabela hash escolhido adequadamente e uma boa função hash, essa situação acontece raramente
Mesmo com isso deve se implementar um mecanismo de resolução de colisão, existem duas versões: o hash aberto (encadeamento separado) e o hash fechado (endereçamento aberto)
-
Hash fechado: todas as chaves são armazenadas na própria tabela hash sem o uso lista vinculada (isso implica que o tamanho da tabela m deve ser pelo menos tão grande quando o número de chave n)
Diferentes estratégias podem ser usadas para resolução de colisões, a mais simples chamada sondagem linear verifica se ocorre colisão na célula seguinte, Se essa célula estiver vazia, a chave é instalada ali, mas se a próxima já estiver ocupada, é verificada a disponibilidade do sucessor imediato daquela célula e assim por diante
Se o final da tabela hash for atingido a pesquisa será quebrada no início da tabela, ou seja, é tratado como uma matriz circular
À medida que a tabela hash se aproxima de estar cheia o desempenho da sondagem linhear deteriora-se devido a um fenômeno chamado cluster
Cluster: em sondagem linear é uma sequência de células ocupadas contiguamente (com um possível empacotamento)
-
Dicionário
estrutura de dados que implementa operações realizadas com mais frequência em conjuntos ou multiconjuntos, como procurar um determinado item, adicionar novo item e remover item da coleção
Pode ser implementado com técnicas poucos sofisticadas usando array(ordenado ou não) até técnicas muito mais sofisticadas, como hashing e arvores de busca balanceada
Aprimoramento de entrada
Em termos um pouco mais gerais, a ideia é pré-processar a entrada do problema, no todo ou em parte, e armazenar as informações adicionais obtidas para acelerar a resolução do problema posteriormente
Algoritmos: métodos de contagem para classificação e Boyer-Moore para correspondência de strings e sua versão simplificada sugerida por Harspool
Pré-estruturação
Outro tipo de técnica simplesmente utiliza espaço extra para facilitar um acesso mais rápido e/ou mais flexível aos dados
-
-