SóProvas



Questões de Hashing


ID
17134
Banca
CESPE / CEBRASPE
Órgão
TSE
Ano
2007
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca da representação e do armazenamento de informações, assinale a opção correta.

Alternativas
Comentários
  • Letra a: Correta - http://pt.wikipedia.org/wiki/Hash.
    Como a seqüencia do hash é limitada, muitas vezes não passando de 512 bits, existem colisões (seqüências iguais para dados diferentes). Quanto maior for a dificuldade de se criar colisões intencionais, melhor é o algoritmo.

    Letra b: Errada - Na verdade o algoritmo First-Fit é utilizado para alocação dinâmica de processos na memória:

    Fragmentação
    Fragmentação acaba com a performance: depois de algum tempo uma grande parte da memória fica inutilizada.

    Memória fica cheia de ``buracos''
    Estratégias para ``atacar'' o problema:

    First-fit: Escolha o primeiro buraco onde o novo processo caiba.

    Letra c: errada

  • b - errada. Não basta unir as áreas livres. É preciso unir as áreas preenchidas seguindo a lógica da qual fazem parte em um arquivo, desfragmentando-o.
  • Letra C - Errada pois o arquivo precisa estar ordenado para se realizar uma busca binária. Quanto ao custo de inserção não sei afirmar.

    Letra D - Se existe um índice, pra que ordenar um arquivo, não é mesmo?
  • A alternativa B) está incorreta porque o que ela afirma é válido apenas para combater a fragmentação externa.


ID
70258
Banca
FCC
Órgão
TRT - 3ª Região (MG)
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma boa função de transformação de chaves tem como requisito essencial a distribuição das chaves tão unifor- memente quanto possível dentro do intervalo dos valores dos índices. Exceto esta exigência, a distribuição não é vinculada a nenhum padrão particular, sendo desejável, inclusive, que pareça totalmente aleatória. Tal propriedade deu a este método uma conotação não-científica (o significado é pulverizar o argumento e espalhá-lo desordenadamente) com o nome de

Alternativas
Comentários
  • Hashing: 
    dica: hash=cortar, separar, dividir,DISTRIBUIR
    • Idéia geral: Se eu possuo um universo de dados classificáveis por chave, posso:
      • Criar um critério simples para dividir este universo em subconjuntos com base em alguma qualidade do domínio das chaves.
      • Saber em qual subconjunto procurar e colocar uma chave.
      • Gerenciar estes subconjuntos bem menores por algum método simples.
    • Para isso eu preciso:
      • Saber quantos subconjuntos eu quero e criar uma regra de cálculo que me diga, dada uma chave, em qual subconjunto devo procurar pelos dados com esta chave ou colocar este dado, caso seja um novo elemento.

      • Isto é chamado de função de hashing.
      • Possuir um índice que me permita encontrar o início do subconjunto certo, depois de calcular o hashing. Isto é a tabela de hashing.


ID
150010
Banca
CESPE / CEBRASPE
Órgão
TCE-AC
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere um processo de recuperação de informações a partir de uma grande massa de informações previamente armazenadas, sendo a informação dividida em registros que possuem uma chave para ser utilizada na pesquisa, cujo objetivo seja encontrar uma ou mais ocorrências de registros com chaves iguais à chave de pesquisa; o conjunto de registros denomina-se tabela ou arquivo, sendo tabela o conjunto de informações armazenadas na memória interna ou principal e arquivo, o conjunto de informações armazenadas na memória secundária ou externa.

Considerando essas informações, assinale a opção correta a respeito dos métodos de acesso, organização de arquivos e estruturas de dados.

Alternativas
Comentários

  • LETRA C EH A RESPOSTA



    SUBLINHANDO OS ERROS
    • b) Uma pilha é um objeto dinâmico que pode ser considerado uma forma de lista linear em que todos os acessos e todas as inserções e retiradas de elementos ocorrem sempre em um dos extremos da lista; em pilhas, os objetos são inseridos e retirados segundo o princípio FIFO (first in, first out).
     NÃO SE USA O PRINCIPIO FIFO.

    • c) Hashing é um método que, a partir de uma chave de pesquisa, gera o endereço de uma tabela que considera a possibilidade de uma ou mais chaves serem transformadas em um endereço igual. Os algoritmos de hashing podem utilizar listas encadeadas como meio para tratar as colisões. Assim, todas as chaves com o mesmo endereço são encadeadas em uma lista linear.
     CORRETO. AQUI SE ABORDA O CONCEITO DE HASHING JUNTAMENTE COM O SEU PRINCIPAL PROBLEMA QUE EH O PROBLEMA DAS COLISOES, OU SEJA, OS MOMENTOS QUE O INDICE COLOCADO NA FUNCAO HASH LEVA A DIFERENTES ITENS DE DADOS.  EH IMPORTANTE SABER ESSE CONCEITOS. EH MUITO COBRADOS NAS QUESTÕES.
    • d) Um deque (double ended queue) requer inserção e remoção no topo de uma lista e permite a implementação de filas com algum tipo de prioridade. A implementação de um deque, geralmente é realizada com a utilização de uma lista simplesmente encadeada.
    O ERRO DETECTADO ESTÁ SUBLINHADO. OU SEJA, O DEQUE EH UMA ESTRUTURA QUE SE PARECE COM UMA LISTA SIMPLES MAS  ACEITA INSERÇAO NAS DUAS EXTREMIDADES
  • O erro da a)  é dizer: "Se é possível os nodos se deslocarem em ambas as direções na lista, diz se que se trata de uma lista simplesmente encadeada." O correto seria Duplamente Encadeada.

    Deque (Double Ended Queue)!  É também conhecida como Filas Duplamente Encadeadas e permite a eliminação e inserção de itens em ambas as extremidades. Ademais, elas permitem algum tipo de priorização, visto que é possível inserir elementos de ambos os lados. Assim sendo, é comum em sistemas distribuídos!


ID
150289
Banca
FCC
Órgão
TJ-PA
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O produto da ação de algoritmos que fazem o mapeamento de uma sequência de bits de tamanho arbitrário para uma sequência de bits de tamanho fixo menor, com resistência à colisão e cujo processo reverso também não seja realizável, denomina-se

Alternativas
Comentários
  •  http://cantinhodomanel.blogspot.com/2007/08/o-que-hash.html

  • Pesquisa por Cálculo de Endereço (Hashing)
    Tabelas onde é possível fazer pesquisas através do cálculo de endereço
    são conhecidas por Tabelas HASH. Hash, em inglês, significa dispersão,
    espalhamento. Este método de pesquisa é bastante útil quando a busca é
    feita sobre um número muito grande de dados que possuam faixas de
    valores muito variável.
    Tabelas HASH são como a maioria das outras tabelas, à exceção que é
    possível fazer acesso não sequencial a determinados registros da tabela
    através do uso de funções hash (em português: funções de
    espalhamento).

  • Uma aplicação importante desse embaralhamento é verificar a integridade de mensagens. Determinando qualquer mudança feita numa mensagem, ou então arquivo de computador. Por exemplo, pode ser feito comparando o resumo calculado antes, e depois a transmissão, ou qualquer outro evento.

    Por essa razão, a maior parte dos algoritmos de assinatura digital apenas confirma a autenticidade de um hash resumo para ser autenticado. Verificação da autenticidade de um resumo hash é considerada como prova de que a mensagem é verdadeira.


ID
157855
Banca
FCC
Órgão
METRÔ-SP
Ano
2008
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O objetivo de fazer uma busca rápida a partir de uma chave de pesquisa simples e obter o valor desejado é alcançado pela estrutura de dados especial denominada

Alternativas
Comentários
  • Tabela hashing  também conhecida por tabela de espalhamento, é uma estrutura de dados especial, que associa chaves de pesquisa (hash) a valores. Seu objetivo é, a partir de uma chave simples, fazer uma busca rápida e obter o valor desejado. É algumas vezes traduzida como tabela de escrutínio.


ID
172618
Banca
FCC
Órgão
MPU
Ano
2007
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma desvantagem do hashing ou endereçamento de hash, como técnica utilizada nas estruturas de armazenamento, é que

Alternativas
Comentários
  • Tabela de dispersão (também conhecida por tabela de espalhamento ou tabela hash, do inglês hash) é uma estrutura de dados especial, que associa chaves de pesquisa a valores. Seu objetivo é, a partir de uma chave simples, fazer uma busca rápida e obter o valor desejado.

    A função de espalhamento ou função de dispersão é a responsável por gerar um índice a partir de determinada chave. Caso a função seja mal escolhida, toda a tabela terá um mau desempenho.

    O ideal para a função de espalhamento é que sejam sempre fornecidos índices únicos para as chaves de entrada. A função perfeita seria a que, para quaisquer entradas A e B, sendo A diferente de B, fornecesse saídas diferentes. Quando as entradas A e B são diferentes e, passando pela função de espalhamento, geram a mesma saída, acontece o que chamamos de colisão.


    Colisões

    A função de dispersão pode calcular o mesmo índice para duas chaves diferentes, uma situação chamada colisão. Por conta disso, a função deve ser projetada para evitar ao máximo a ocorrência de colisões. Por mais bem projetada que seja a função de dispersão, sempre haverá colisões. A estrutura de dispersão utiliza mecanismos para tratar as colisões, que dependem de características da tabela usada.

    Exemplo:

    função para distribuir nomes:

    Hash2.JPG
     

    Agora inserimos mais um nome:

    Renato Porto; Rua dos Elefantes, 687; Telefone (31) 3333-5555

    E temos uma colisão:

    Hash3.JPG
     

    Como se pode notar, a função utilizada para no exemplo causaria muitas colisões. Se inserirmos um outro nome começado com a letra R, teremos uma outra colisão na letra R. Se inserirmos "João Siqueira", a entrada estaria em conflito com o "José da Silva".

    Fonte com algumas alterações:

    http://pt.wikipedia.org/wiki/Tabela_de_dispers%C3%A3o


ID
209218
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de pesquisa de dados e de operações básicas sobre
estruturas, julgue os itens que se seguem.

Ocorre o hashing quando não há o armazenamento de cada entrada de uma tabela em um específico endereço calculado a partir da aplicação de uma função chave da entrada.

Alternativas
Comentários
  • A tabela hash faz o mapeamento de um valor para uma memoria ou indice.

    Por exemplo, nomes q iniciam pela letra B, são apresentados a partir do índice 20. Nomes q iniciam pela letra D, estão a partir do índice 43....

    Então, o hashing ocorre quando há o mapeamento do valor para um índice ou uma memória.

  • ERRADA!

    O errado é o 'não' em "Ocorre o hashing quando NÃO há o (...)".
    O Hashing, ou dispersão, utiliza-se de funções para calcular o valor do endereço onde o dado será armazenado na tabela.

    Mais informações em: http://pt.wikipedia.org/wiki/Tabela_de_hashing
  • O conceito é exatamente o descrito porém o "não" é o nega a questão!
  • Errado. O contrário está correto:

    "Ocorre o hashing quando há o armazenamento de cada entrada de uma tabela em um específico endereço calculado a partir da aplicação de uma função chave da entrada. "
  • Funções hashing são utilizadas para calcular endereços específicos (índices) para cada entrada de uma tabela. É uma forma de espalhamento (dispersão) dos dados, que serão acessados, posteriormente, por tais endereços.

  • Gabarito Errado

    Ocorre hashing quando o armazenamento.

     

     

    Vamos na fé !

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
238306
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A respeito dos métodos de ordenação, pesquisa e hashing, julgue
os seguintes itens.

As tabelas hashing, ou tabelas de dispersão, podem ser usadas no processo de gerenciamento de memória virtual pelo sistema operacional.

Alternativas
Comentários
  • Tabelas hash ou estrutura de dispensão é uma estrutura de dados especial, que associa chave de pesquisa a valores. Seu objetivo é, a partir de uma chave simples, fazer uma busca rápida e obter o valor desejado.
    São utilizadas para implementar vetores associativos, conjuntos e cachês. São utilizadas também para indexar grandes volumes de informação.
  • Resposta correta.

    Tabelas hash são muito utilizadas para gerenciamento de espaços de endereçamento virtual paginado de 64 bits utilizando a técnica da Tabela de Páginas Invertida (TPI).

    Esclarecendo:

    Como a TPI apresenta o mesmo número de entradas que a quandidade de molduras de página (page frames), o mapeamento virtual-físico precisa ser feito através da tupla (processo, página virtual). Esse esquema torna o mapeamento mais difícil e demorado (pois a tabela de páginas deveria ser percorrida sequencialmente). Então uma solução para agilizar o mapeamento é utilizar tabelas hash.


    Fonte: Sistemas Operacionais Modernos - Andrew Tanembaum
  • Prezados,

    Segundo Silderschatz , em seu livro Sistemas operacionais, página 217, a paginação é um esquema de gerência de memória que permite que o espaço de endereços físicos de um processo seja não contíguo. Uma técnica comum para tratar de espaços de endereços maiores que 32 bits é usar uma tabela de página hash, com o valor de hash sendo o número da página virtual.

    Portanto a questão está correta.


ID
238309
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A respeito dos métodos de ordenação, pesquisa e hashing, julgue
os seguintes itens.

A estabilidade de um método de ordenação é importante quando o conjunto de dados já está parcialmente ordenado.

Alternativas
Comentários
  • A estabilidade de um método de ordenação é importante quando você quer preservar a associação entre chaves e valores em uma estrutura de dados.

     

    Exemplo, temos o vetor:

    [0] -> 666

    [1] -> 7

    [2] -> 14

     

    Por ordenação instável:

    [0] -> 7

    [1] ->14

    [2] -> 666

     

    Por ordenação estável:

    [1] -> 7

    [2] ->14

    [0] -> 666

     

    Por exemplo, em PHP usa-se sort ( $array ) para ordenação instável, e asort ($array) para ordenação estável.

     

    Algoritmos Estáveis incluem Bubblesort, Mergesort e Insertsort.

    Algoritmos Instáveis incluem o Quicksort, Heapsort, Selectionsort e Shellsort

     

  • Discordo do gabarito.
    Um método de ordenação é dito estável se ele preserva a ordem relativa dos itens com chaves duplicadas/iguais.

    Assim, se temos um conjunto de dados parcialmente ordenado como [1, 1, 2, 4, 4, 3, 5, 5, 5], o numero de trocas realizadas por um método instável deve ser maior. Então podemos concluir que o fato de um método ser estável é relavante quando o conjunto está parcialmente ordenado.

    Gostaria que alguém comentasse a respeito.
  • Concordo com o gabarito. O fato do algoritmo ser estável ou não é irrelevante para melhorar sua performance na ordenação de um conjunto de dados já parcialmente ordenado. Como o colega expos, um algorimo é estável se ele preserva a ordem relativa dos itens comchaves duplicadas/iguais. Veja que o fato do algoritmo não preservar a ordem dos itens com chaves duplicadas/iguais não afetará a performance da ordenação. Um exemplo: nas três primeiras posições temos [1,1,1,...]. Ora, não importa (para uma ordenação) se o 1 que está na primeira posição se manterá lá. Na primeira posição pode estar o segundo ou o terceiro 1, desde que seja um 1. 

    []'s, espero ter ajudado!
  • Prezados,

    Um método de ordenação se diz estável se preserva a ordem de registros de chaves iguais, ou seja, os registros aparecem na sequência ordenada na mesma ordem que estão na sequência inicial. Isso só é importante quando há dados associados as chaves de ordenação, sendo indiferente se o conjunto de dados já está parcialmente ordenado ou não.

    Portanto a questão está errada.


  • 2011

    Os métodos de ordenação podem ser classificados como estáveis ou não estáveis. O método é estável se preserva a ordem relativa de dois valores idênticos. Alguns métodos eficientes como shellsort ou quicksort não são estáveis, enquanto alguns métodos pouco eficientes, como o método da bolha, são estáveis.

    Certa

     

     

    O Bubble é o pior algoritmo (menos eficiente) e é estável

     


ID
245185
Banca
CESPE / CEBRASPE
Órgão
TRT - 21ª Região (RN)
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considerando que uma tabela hash (tabela de espalhamento) possua
quatro posições numeradas 0, 1, 2, 3 e 4, e que nela esteja
armazenada uma sequência de quadrado de valores inteiros definida
como 1, 4, 9, 16, ., n2, segundo a função f (x) = x mod 5, julgue os
itens que se seguem.

Cada posição da tabela receberá aproximadamente o mesmo número de elementos.

Alternativas
Comentários
  • Esta questão teve o gabarito trocado. Justificativa do CESPE abaixo:

    As posições 2 e 3 nunca serão preenchidas. Assim, não é correto afirmar que cada posição da tabela receberá o mesmo número de elementos, razão pela qual se opta pela alteração do gabarito de CERTO para ERRADO.

     

    http://www.cespe.unb.br/concursos/trt21rn2010/arquivos/TRT_21_JUSTIFICATIVAS_DE_ALTERACOES_DE_GABARITO_FINAL__2_.PDF

  • Olá, pessoal!

    O gabarito foi atualizado para "E", após recursos, conforme edital publicado pela banca, e postado no site.

    Justificativa da banca: 
    As posições 2 e 3 nunca serão preenchidas. Assim, não é correto afirmar que cada posição da tabela receberá o mesmo número de elementos, razão pela qual se opta pela alteração do gabarito de CERTO para ERRADO.

    Bons estudos!

  • Vou fazer uma explicação para leigos pois tive dificuldade em entender o que a questão pedia.
    A questão quer que você imagine uma tabela com 4 colunas onde você irá armazenar os dados de acordo com o resultado da conta x mod 5 onde os valores de x são uma sequência de quadrado de valores, ou seja, 1, 4, 9, 16, ., n2. Aí você faz as contas, para x=1, x mod 5 (resto da divisão de 1 por 5) é 1, para x=4, x mod 5 = 4, e assim por diante, bom, o que acontece é que o resultado desta conta nunca será 2 ou 3, assim, não podemos dizer que cada posição da tabela receberá aproximadamente o mesmo número de elementos pois como a conta nunca retorna 2 ou 3, estas duas posições nunca receberão nenhum elemento.
  • Complementando...

    0 mod 5 = 0 (zero não é divisível por 5 então o resto é zero)
    1 mod 5 = 1 (1 não é divisível por 5 então o resto é 1)4 mod 5 = 4 (4 não é divisível por 5 então o resto é 4)9 mod 5 = 4 (9 é divisível por 5, onde 5x1=5 e resto é 4)16 mod 5 = 1 (16 é divisível por 5, onde 3x5=15 e resto é 1)25 mod 5 = 0 (25 é divisível por 5, onde 5x5=25 e resto é 0)36 mod 5 = 1 (36 é divisível por 5, onde 7x5=35 e resto é 1)

ID
245188
Banca
CESPE / CEBRASPE
Órgão
TRT - 21ª Região (RN)
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considerando que uma tabela hash (tabela de espalhamento) possua
quatro posições numeradas 0, 1, 2, 3 e 4, e que nela esteja
armazenada uma sequência de quadrado de valores inteiros definida
como 1, 4, 9, 16, ., n2, segundo a função f (x) = x mod 5, julgue os
itens que se seguem.

Na tabela hash apresentada, não haverá colisões em suas posições.

Alternativas
Comentários
  • ERRADO. Obviamente haverá colisão pois temos apenas quatro posições para armazenar um conjunto numérico infiinto (1, 4, 9, 16, ., n2)

  • A colisão pode ser detectada já no terceiro elemento a ser inserido na tabela:
    Elementos = {1, 4, 9, 16, ..., n2, ...}
    elemento 1 => posição: f(1) = 1
    elemento 4 => posição: f(4) = 4
    elemento 9 => posição: f(9) = 4 (colisão com o valor 4 inserido na posição 4)
  • "... quatro posições numeradas 0, 1, 2, 3, 4 ..." kkk

ID
249397
Banca
CESPE / CEBRASPE
Órgão
DETRAN-ES
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Com relação à programação, algoritmos e estrutura de dados, julgue
os itens seguintes.

No método de hashing, por meio de acesso sequencial, são utilizados tabelas e mapas para recuperar informações de endereço de arquivos de forma rápida e eficiente.

Alternativas
Comentários
  • se ouver colisao ocorre processamento sequencial!
  • Por meio do acesso sequencial são utilizadas listas para recuperar a informação
  • Acesso sequencial é EXATAMENTE o que hashing NÃO FAZ!!

    O hashing é um FUNÇÃO de mapeamento, ABSOLUTAMENTE não relacionado a acesso sequencial. O máximo de sequencial que é feito, é quando há colisões é usa-se o Endereçamento Aberto por Busca Linear para colocar essa nova chave na tabela ou para buscar essa chave.
  • "No método de hashing, por meio de acesso sequencial, são utilizados tabelas e mapas para recuperar informações de endereço de arquivos de forma rápida e eficiente. "

    Normalmente não acesso sequencial em hashing (salvo quando as colisões são tratadas com listas encadeadas). E quando se fala em acesso sequencial, não há o que se falar de método eficiente, pois é o método de busca mais ineficiente que existe.
    Assertiva incorreta!
  • Similarmente ao que ocorre em banco de dados: 
    Acesso sequencial = lento
    Acesso direto = rápido


ID
273352
Banca
CESPE / CEBRASPE
Órgão
FUB
Ano
2011
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue os próximos itens em relação às estruturas de dados.

No uso de estruturas de transformação de chave (hashing), a solução de colisões usando encadeamento tem como principal característica o fato de nunca transbordar. Adicionalmente, o tempo de busca na lista ligada pode ser reduzido se uma lista duplamente encadeada for utilizada.

Alternativas
Comentários
  • Uso da posição consecutiva livre:
    • Os elementos que colidem são armazenados em posições da tabela ainda não ocupadas;
    • Uma das estratégias consiste em buscar a próxima posição livre (utilizando incremento circular):

    Usa-se somente um a Lsta Encadeada
  • Se eu quiser eu posso utilizar uma lista duplamente encadeada no meu hashing. Mas isso significa aumento do gasto de memória para armezenar 1 ponteiro a mais desnecessário. O erro da questão está em dizer que "Adicionalmente, o tempo de busca na lista ligada pode ser reduzido se uma lista duplamente encadeada for utilizada." 


    A complexidade temporal para a busca de um elemento numa lista encadeada é(em termos assintóticos) a mesma se comparada com uma lista duplamente encadeada. O(n) no tamanho da lista.
  • Um método alternativo citado por Wirth é o método de endereçamento aberto. 
  • (ERRO EM VERMELHO) No uso de estruturas de transformação de chave (hashing), a solução de colisões usando encadeamento tem como principal característica o fato de nunca transbordar. Adicionalmente, o tempo de busca na lista ligada pode ser reduzido se uma lista duplamente encadeada for utilizada.

     

    ---> Tanto lista encadeada quanto lista duplamente encadeada possuem A MESMA COMPLEXIDADE, portanto o tempo não pode ser reduzido na lista duplamente encadeada.


ID
344035
Banca
FUNCAB
Órgão
DER-RO
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma desvantagem do ou endereçamento de hash ,como técnica utilizada nas estruturas de armazenamento, é que:

Alternativas

ID
345325
Banca
MOVENS
Órgão
Prefeitura de Manaus - AM
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Um dos maiores problemas quando se estuda a alocação de estruturas de dados é o tempo de resposta da pesquisa de uma chave em um conjunto de elementos. Como forma de contornar este problema, o Hashing faz uso de funções aritméticas que permitem que o tempo de pesquisa seja independente do número de registros da tabela.

Assinale a opção que NÃO apresenta um exemplo de Hashing.

Alternativas

ID
642226
Banca
FCC
Órgão
TCE-PR
Ano
2011
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

É um tipo de estrutura de dados em que a função de dispersão é a responsável por gerar um índice a partir de determinada chave; por causa das colisões, muitas tabelas de dispersão são aliadas com alguma outra estrutura de dados:

Alternativas
Comentários
  • (...)

    esta tabela é uma Estrutura de Dados bem como as Árvores. A tabela Hash é uma estrutura de dados que associa chaves de pesquisa a valores. Ela também é conhecida por tabela de espalhamento ou dispersão. Seu objetivo é, a partir de uma chave simples, fazer uma busca rápida e obter o valor desejado. Ela pode ser representada por um vetor onde cada posição deste é chamada de encaixe e armazena uma uma classe de partição.

    (...)

  • Dica: falou em COLISÕES esta falando de HASH! (no contexto de estrutura de dados)

ID
704329
Banca
CESPE / CEBRASPE
Órgão
MPE-PI
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue os itens seguintes, acerca de métodos de ordenação e busca.

No uso de funções de hash, a resolução de colisões por encadeamento utiliza uma lista para armazenar todos os elementos que compartilham o mesmo valor de hash.

Alternativas
Comentários
  • Encadeamento Aberto

    Neste encadeamento é usada uma lista encadeada como estrutura auxiliar.


    http://pt.wikipedia.org/wiki/Tratamento_de_Colis%C3%B5es_atrav%C3%A9s_de_Encadeamento
  • Gabarito Certo

    No endereçamento aberto todos os elementos são armazenados na própria tabela hash, isto é, não existem listas nem elementos armazenados fora da tabela, evitando assim o uso de ponteiros.

    A vantagem de se utilizar endereçamento aberto é que a quantidade de memória utilizada para armazenar ponteiros é utilizada para aumentar o tamanho da tabela, possibilitando menos colisões e aumentando a velocidade de recuperação das informações.

    Para inserir um novo elemento, examinamos sucessivamente a tabela até encontrarmos um slot vazio onde possamos armazenar o elemento. Um ponto importante é que não percorremos sempre a tabela inteira, isto é, a busca depende do elemento a ser inserido.

    A fim de realizarmos a tarefa acima, estendemos a função hash incluindo um número que reflete o número de colisões em cada slot.

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

     


ID
759361
Banca
PaqTcPB
Órgão
UEPB
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

__________ é um algoritmo que mapeia um conjunto grande de dados, chamado de chaves, em um conjunto menor de dados. O termo que melhor completa a frase é:

Alternativas
Comentários
  • Um hash (ou escrutínio) é uma sequência de bits geradas por um algoritmo de dispersão, em geral representada em base hexadecimal, que permite a visualização em letras e números (0 a 9 e A a F), representando um nibble cada. O conceito teórico diz que "hash é a transformação de uma grande quantidade de informações em uma pequena quantidade de informações".

    Essa sequência busca identificar um arquivo ou informação unicamente. Por exemplo, uma mensagem de correio eletrônico, uma senha, uma chave criptográfica ou mesmo um arquivo. É um método para transformar dados de tal forma que o resultado seja (quase) exclusivo. Além disso, funções usadas em criptografia garantem que não é possível a partir de um valor de hash retornar à informação original.

    http://pt.wikipedia.org/wiki/Hash

  • Força Guerreiro!!!!!!


ID
769234
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Com relação a métodos de pesquisa de dados, julgue os itens subsecutivos.


Listas encadeadas não são utilizadas na busca que emprega tabelas hash.

Alternativas
Comentários
  • Uma tabela Hash usa uma uma função de disperção dos valores de acordo com a chave escolhida. As listas encadeadas são uma estrutura perfeita para armazenar esses valores, já que eles vão poder ser facilmente buscados de acordo com a lógica empregada.
  • Uma tabela de dispersão (também conhecida por tabela de espalhamento ou tabela hash) é uma estrutura de dados especial, que associa chaves de pesquisa a valores. Pode ser implementada por vetor (tam. Fixo) ou lista encadeada (sem limite de tamanho).
  • Existem duas formas de se implementar uma tabela hash: hashing aberto (utilizando uma estrutura externa ao vetor) e o hashing fechado (os dados são armazendos apenas no vetor). No hashing aberto, essa estrutura externa pode ser vários tipos de estruturas de dados, como uma lista encadeada, uma árvore binária, uma AVL ou uma árvore B.
  • Uma tabela hash é uma estrutura que permite associar uma chave a um valor e, posteriormente, ter acesso ao valor a partir de sua chave associada.

    É também possível consultar se uma determinada chave existe na tabela ou se um determinado valor está presente na tabela associado a qualquer chave.

    Listas encadeadas são utilizadas na busca que emprega tabelas hash.
  • ERRADO.

     

    Listas encadeadas podem ser usadas para implementar os buckets da tabela hash.

     

    Só p constar, rss...: Bucket é o nome dado ao lugar onde os elementos são armazenados na tabela hash.
     

  • Força Guerreiro!!!!!!


ID
769246
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A busca que utiliza uma tabela hash realiza comparação das chaves para encontrar a posição do elemento que está sendo buscado.

Alternativas
Comentários
  • A ideia central do Hash é utilizar uma função aplicada sobre a parte da informação (chave), para retornar o índice onde a informação deve ou deveria estar armazenada.
  • Questão errada. Busca com hashing não utiliza de comparação de chaves, utiliza indexação: uma vez que a chave é conhecida, a posição na tabela pode ser acessada diretamente, sem fazer qualquer teste preliminar.


    Bons estudos
  • ERRADO.

     

    Para identificar o bucket basta computar a função hash, não tem que comparar as chaves.

  • Força Guerreiro!!!!!!


ID
769249
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

As colisões ocorrem na utilização de tabela hash porque várias chaves podem resultar na mesma posição.

Alternativas
Comentários
  • Idealmente, cada chave processada por uma função hash geraria uma posição diferente na tabela. No entanto, na prática existem sinônimos -- chaves distintas que resultam em um mesmo valor de hashing. Quando duas ou mais chaves sinônimas são mapeadas para a mesma posição da tabela, diz-se que ocorre uma colisão.

    Uma boa função hash deve apresentar duas propriedades básicas: seu cálculo deve ser rápido e deve gerar poucas colisões. Além disso, é desejável que ela leve a uma ocupação uniforme da tabela para conjuntos de chaves quaisque

    Fonte: http://www.dca.fee.unicamp.br/cursos/EA876/apostila/HTML/node26.html

  • As colisões ocorrem na utilização de tabela hash porque várias chaves podem resultar na mesma posição. No uso de estruturas de transformação de chave (hashing), a solução de colisões usando encadeamento tem como principal característica o fato de nunca transbordar.

    GABARITO - CERTO

    https://www.questaocerta.com.br/questoes/assunto/hashing?imprimir=true#:~:text=As%20colis%C3%B5es%20ocorrem%20na%20utiliza%C3%A7%C3%A3o,podem%20resultar%20na%20mesma%20posi%C3%A7%C3%A3o.&text=No%20uso%20de%20estruturas%20de,o%20fato%20de%20nunca%20transbordar.

  • Força Guerreiro!!!!!!


ID
811684
Banca
COPESE - UFT
Órgão
DPE-TO
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma tabela de dispersão (também conhecida por tabela de espalhamento ou tabela hash) é uma estrutura de dados especial, que associa chaves de pesquisa a valores. Seu objetivo é, a partir de uma chave simples, fazer uma busca rápida e obter o valor desejado. É algumas vezes traduzida como tabela de escrutínio.

Relativo à tabela de dispersão, dentre as alternativas abaixo, marque a alternativa INCORRETA.

Alternativas
Comentários
  • d) A função de dispersão pode calcular o mesmo índice apenas para duas chaves iguais. [ERRADO. Duas chaves diferentes podem gerar mesmo hash]

  • Força Guerreiro!!!!!!


ID
888970
Banca
CESGRANRIO
Órgão
EPE
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere uma tabela de espalhamento (hash table) de comprimento igual a 11, na qual a técnica de resolução de colisões utilizada é a de encadeamento. Nessa tabela, as posições são numeradas (indexadas) com os valores 0, 1, 2, ..., 10, o mapeamento de chaves para posições usa a função hash definida por h(k) = k mod 11, onde k é o valor da chave, e mod é o operador de módulo, e os números 1, 5, 18, 20, 4, 12, 10, 34, 15, 28 e 17 foram as chaves inseridas, nessa ordem, nessa tabela de espalhamento que estava inicialmente vazia.


Qual a quantidade de posições em que houve colisão durante as inserções das chaves?

Alternativas
Comentários
  • h(k) = k mod 11

    k = {1,5,18,20,4,12,10,34,15,28,17}


    h(1) = 1 mod 11 = 1

    h(5) = 5 mod 11 = 6

    h(18) = 18 mod 11 = 7

    h(20) = 20 mod 11 = 9

    h(4) = 4 mod 11 = 7

    h(12) = 12 mod 11 = 1

    h(10) = 10 mod 11 = 1

    h(34) = 34 mod 11 = 1

    h(15) = 15 mod 11 = 4

    h(28) = 28 mod 11 = 6

    h(17) = 17 mod 11 = 6


    Podemos observar colisões nas posições 1, 6 e 7.

  • Como sei se o encadeamento é aberto ou fechado? Não está dizendo nada...

  • Leonardo o correto seria:

    h(k) = k mod 11

    k = {1,5,18,20,4,12,10,34,15,28,17}

    h(1) = 1 mod 11 = 1

    h(5) = 5 mod 11 = 5

    h(18) = 18 mod 11 = 7

    h(20) = 20 mod 11 = 9

    h(4) = 4 mod 11 = 4

    h(12) = 12 mod 11 = 1

    h(10) = 10 mod 11 = 10

    h(34) = 34 mod 11 = 1

    h(15) = 15 mod 11 = 4

    h(28) = 28 mod 11 = 6

    h(17) = 17 mod 11 = 6


    Podemos observar colisões nas posições 1, 4 e 6.


  • Não entendi como foram identificadas as colisões. Me pareceu que é quando o resto é igual à própria chave. Porém, se fosse assim, não seriam 4 posições (pois na 0 o resto também é igual à chave)?

    Alguém pode me ajudar?

  • Já eu não entendi é como chegou no resultado abaixo:

    h(15) = 15 mod 11 = 4

    h(28) = 28 mod 11 = 6

    15 - 11 ?? mas e o 28 - 11 ??

  • Força Guerreiro!!!!!!


ID
1120951
Banca
CESPE / CEBRASPE
Órgão
TRT - 17ª Região (ES)
Ano
2013
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Em relação aos métodos de ordenação, pesquisa e hashing, julgue os itens a seguir.

O armazenamento e a recuperação eficientes de itens provenientes de conjuntos estáticos, tais como palavras em linguagem natural, palavras reservadas em linguagens de programação e URLs, podem ser realizados em máquinas de busca pelas funções hash perfeitas mínimas.

Alternativas
Comentários
  • Essa é realmente uma questão muito inteligente e requer o conhecimento de vários conceitos.

    Hashing - Hashing em termos de estrutura de dados é a transformação de chave é um método de pesquisa onde os registro armazenados em uma tabela são diretamente endereçados a partir de uma transformação aritmética sobre a chave de pesquisa. 

    Função Hashing - Acho que essa aqui vocês já conhecem...kkk. É a função que transforma um conjunto de chaves em um conjunto de valores inteiros com colisões permitidas. Essas colisões vão permitir as entradas da tabela hashing.

    Tabela Hashing - É um método de recuperação de informações em estrutura de dados utilizando a transformação de chave é um método de pesquisa onde os registro armazenados em uma tabela são diretamente endereçados a partir de uma transformação aritmética sobre a chave de pesquisa.

    Função Hash Perfeita - Quando não houver colisões a função hashing é denominada função hashing perfeita.

    Função Hashing Perfeitas Mínimas - FHPM - Caso o número de chaves "N" e o tamanho da tabela "M" são iguais , então a função hashing é denominada função hashing perfeita e mínima. 

    Existem algoritmos classificados na literatura para implementações de FHPM mas acredito que não objeto dessa questão.

    Gabarito Certo!

  • Força Guerreiro!!!!!!


ID
1190422
Banca
FGV
Órgão
DPE-RJ
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere um arquivo sequencial, com 10.000 registros, cujas chaves identificadoras são números inteiros de até 8 dígitos. Para criar um índice tipo hashing para esse arquivo, contendo endereços de 0 até 11.999, a mais adequada definição para uma função de hashing f(x), onde x é uma chave e ( a mod b ) é o resto da divisão de a por b, seria

Alternativas
Comentários
  • Força Guerreiro!!!!!!


ID
1319989
Banca
CESGRANRIO
Órgão
IBGE
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

No processo de criação de um banco de dados relacional, primeiro foram criadas as tabelas onde seriam guardados os dados; depois, foi feita a inserção dos dados nessas tabelas. Nenhuma outra estrutura auxiliar foi criada no banco para melhorar o desempenho além das chaves primárias. Após realizar uma simulação de carga, com dados e aplicativos reais, o responsável percebeu que uma busca importante tentava encontrar uma pessoa pelo número do seu título de eleitor, no campo TITELE, que não era uma chave primária planejada. Essa busca demorava muito, pois o SGBD precisava procurar em todos os registros até encontrar aquele com o número desejado.

Supondo-se que o SGBD suporta visões, índices árvore-B e de tabela de espalhamento (hashs), joins e procedimentos armazenados, a maneira de acelerar essa busca ao máximo é criar um(a)

Alternativas
Comentários
  • Alguém explica o porquê a alternativa B está correta?

  • É a maneira mais rápida dentre as opções. O(1)


  • A complexidade de melhor caso(onde não há colisões) em um algoritmo de Heap sort é de O(1). No pior caso é de O(n).

  • Questão passível de anulação, pois para ser mais rápido ou mais lento, vai depender muito do banco de dados onde a tabela e consequentemente os índices serão criados.

    No Postgree, por exemplo, a criação do índice hash o torna mais lento e recomenda-se o indice do tipo árvore B+ mesmo, conforme pode ser visto no link abaixo.

    http://pgdocptbr.sourceforge.net/pg80/indexes-types.html

     

     

  • Força Guerreiro!!!!!!


ID
1329946
Banca
FMP Concursos
Órgão
PROCEMPA
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Um arquivo é organizado logicamente como uma sequência de registros, cada um deles representando um objeto ou uma entidade. Com base no conhecimento sobre as diferentes maneiras de organizar registros em arquivos, considere as seguintes afirmativas. 

 
I. Uma organização de arquivo hash (também chamada de acesso direto) fornece um acesso muito rápido aos registros, quando a condição de pesquisa é de igualdade em um único campo; neste caso, o campo é chamado campo de hash. A ideia do hashing é forncecer uma função h, chamada função hash, que, aplicada ao valor do campo hash de um registro, gere o endereço do bloco do disco no qual o registro será armazenado.
II. Em uma organização de arquivo heap, os registros são armazenados fisicamente em ordem sequencial a partir dos valores de um de seus campos, chamado campo de classificação. Na organização de arquivo heap, a inclusão e a exclusão de registros são operações dispendiosas porque os registros deverão permanecer ordenados fisicamente.
III. Em uma organização de arquivo sequencial, os registros estão posicionados no arquivo segundo a ordem pela qual foram incluídos, de forma que os novos registros são acrescentados ao final do arquivo ou onde haja espaço disponível. Na organização sequencial, para ler todos os registros pela ordem dos valores de algum campo, é preciso criar uma cópia do arquivo e ordená-la através de técnicas especiais de classificação externa.
IV. As operações em arquivos são geralmente divididas em operações de recuperação e operações de atualização. As operações de recuperação não alteram nenhum valor no arquivo, apenas localizam certos registros, de forma que seus valores de campo possam ser examinados e processados. As operações de atualização mudam o arquivo por meio da inclusão ou da exclusão de registros ou pela modificação de valores dos campos. 
 
Assinale a alternativa CORRETA.

Alternativas
Comentários
  • Diz o gabarito que é a letra 'A'.

    ************************************************************************************************************************************

    A idéia do hashing é fornecer uma função

    h(x), chamada de função hash que, aplicada

    ao valor do campo de hash de um registro,

    gere o endereço do bloco de disco no qual o

    registro está armazenado.

    http://www.inf.unioeste.br/~olguin/4458-semin/G2-apresentacao.pdf

    http://dsc.ufcg.edu.br/~dalton/cursos/edados/IntroducaoATabelasHash.pdf

    *******************************************************************************************************************************

    Heap ( ou pilha ) organização de arquivos é uma técnica simples , em que os registros são armazenados por ordem de entrada. Este sistema tem uma " operação de inserção rápida ", o que significa que os novos registos pode ser adicionado rapidamente ao fim do ficheiro . No entanto, a realização de uma pesquisa sobre a organização pilha tende a ser , uma vez que muitas vezes envolve a digitalização de uma grande parte do arquivo demorado. Outra desvantagem é que os registros excluídos muitas vezes deixam buracos na estrutura , o que requer tempo adicional gasto na eliminação de espaço.

    Organização arquivo seqüencial 

    Uma técnica comum para armazenar arquivos grandes, um esquema sequencial organiza registros em um fluxo de blocos contíguos ou campos . A ordem seqüencial dos registros é determinada pela entrada, o que não pode ser alterada uma vez armazenado. O tamanho de um registro é igualmente fixo e só pode ser atualizado por ser substituído por um novo recorde de tamanho correspondente , que é anexado ao final da seqüência. De acordo com a IBM , a organização seqüencial é útil para a impressão de relatórios e nos casos em que a ordem não é importante. No entanto, adicionar e excluir arquivos dentro deste sistema pode ser um desafio . Um registro só pode ser acessado uma vez todos os arquivos anteriores foram lidos .

    http://pt.wingwit.com/Ferragens/computer-drives-storage/8979.html#.VPhMH9JA4SY

    ***************************************************************************************************************************************************************


  • Força Guerreiro!!!!!!


ID
1340971
Banca
FGV
Órgão
TJ-GO
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere as seguintes afirmativas comparativas entre métodos de busca baseados em árvores B e funções de hashing:

I. A inserção de chaves não ordenadas é geralmente mais rápida em métodos de hashing.

II. O número médio de acessos para localização de registros tende a ser menor para métodos baseados em hashing.

III. Métodos de hashing não disponibilizam acesso sequencial às chaves em ordem crescente ou decrescente.

É correto concluir que:

Alternativas
Comentários
  • I e III. Não permite recuperar elementos sequencialmente (ordenação).

    II. Hashing é o mais rápido. Q468140

  • Força Guerreiro!!!!!!


ID
1395913
Banca
FGV
Órgão
PROCEMPA
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Os bancos de dados, em sua organização física, baseiam-se em árvores B-trees (e suas variantes) para a implementação de índices. Analise as comparações a seguir entre B-trees e índices baseados em funções de hashing.

I. B-trees são mais rápidas na localização de um registro a partir de uma chave.

II. B-trees permitem busca com operadores de comparação “>” e “<”.

III. B-trees permitem busca a partir de uma substring à esquerda da chave.

IV. A partir de um certo ponto, o número máximo de acessos necessários para a localização de uma chave em uma B-tree não aumenta com o número total de chaves indexadas, o que tende a torná-la mais rápida em bancos de dados muito grandes.

Assinale a opção que indica o número de comparações corretas.

Alternativas
Comentários
  • Uma árvore B é uma estrutura de dados projetada para funcionar especialmente em memória secundária como um disco magnético ou outros dispositivos de armazenamento secundário. Dentre suas propriedades ela permite a inserção, remoção e busca de chaves numa complexidade de tempo logarítmica e, por esse motivo, é muito empregada em aplicações que necessitam manipular grandes quantidades de informação tais como um banco de dados ou um sistema de arquivos. 

    Se analisarmos as árvores B, elas são uma generalização das árvores binária de busca, pois cada nó de uma árvore binária armazena uma única chave de busca, enquanto as árvores B armazenam um número maior do que um de chaves de busca em cada nó, ou no termo mais usual para essa árvore, em cada página. Como a idéia principal das árvores B é trabalhar com dispositivos de memória secundária, quanto menos acessos a disco a estrutura de dados proporcionar, melhor será o desempenho do sistema na operação de busca sobre os dados manipulados.


  • c-

    In computer science, a B-tree is a self-balancing tree data structure that maintains sorted data and allows searches, sequential access, insertions, and deletions in logarithmic time. The B-tree generalizes the binary search tree, allowing for nodes with more than two children. Unlike other self-balancing binary search trees, the B-tree is well suited for storage systems that read and write relatively large blocks of data, such as disks. It is commonly used in databases and file systems.

    https://en.wikipedia.org/wiki/B-tree

    B-trees favorecem consultas que buscam chaves num determinado intervalo (operadores >= e <=). Tambem são usualmente mais lentos para buscas pela chave (operador =).

  • I. B-trees são mais rápidas na localização de um registro a partir de uma chave. (correto)

    II. B-trees permitem busca com operadores de comparação “>” e “<”. (correto, mesmo que a questão esteja meio certo, não significa que esteja errado. Pois, comparamos com <= e >=).

    III. B-trees permitem busca a partir de uma substring à esquerda da chave.(Errado, a busca começa pela raiz e imerge para os nós a esquerda)

    IV. A partir de um certo ponto, o número máximo de acessos necessários para a localização de uma chave em uma B-tree não aumenta com o número total de chaves indexadas, o que tende a torná-la mais rápida em bancos de dados muito grandes. (Errado, pois de acordo com o tamanho da árvore poderemos ter mais ou menos acessos necessários para chegar a chave de busca.)


ID
1403335
Banca
FCC
Órgão
TJ-AP
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A Lei no 953/2005 que dispõe sobre a Taxa Judiciária do Estado no Amapá, estabelece:

Art. 7o - A alíquota da Taxa Judiciária será de 1,5% sobre o valor da causa, observado o disposto nos artigos 5o e 6o desta Lei. Parágrafo único - Fica assegurada a Taxa Judiciária mínima de R$ 25,00 e máxima de R$ 9.950,00.

Considere que no Tribunal de Justiça do Amapá há um arquivo com uma lista que contém, em cada linha, o nome, CPF, valor da causa e taxa judiciária de milhares de pessoas. O analista judiciário do Tribunal deve propor uma solução para separar somente as pessoas que pagaram taxa mínima e as que pagaram taxa máxima. Uma vez que os dados do arquivo já tenham sido lidos e encontram-se em uma estrutura de dados do tipo tabela (vetor de estruturas), a solução proposta corretamente pelo analista, é percorrer a tabela e

Alternativas
Comentários
  • acertei a B, mas quase fui na letra C

    Pra mim ela faz sentido também

  • Como o enunciado já diz que a tabela está sendo percorrida, acredito que a solução B é a de melhor performance.

  • creio que, tanto b quanto c resolvem. Mas, como dito, é uma questão de performance. Não há necessidade de sobrecarregar computacionalmente percorrendo a tabela novamente.

  • A B resolve? Sim, mas tava com cara de pegadinha! Porque se usar uma fila quando se pode usar uma simples lista?

     

     

    Quanto a C, não me arriscaria. No caso de números com ponto flutuante, ainda que decimais, podem haver múltiplas representações e como consequência divergência no hash.

     

     

    Na prática esses números não são calculados e sim obtidos do arquivo em uma rotina muito provavelemente determinística. Acredito que seja pouco provável ter variações no hash e por conseguinte problemas. Mas se tiver, vai ser um daqueles bugs que a pessoa vai ter que se matar pra reproduzir.

     

     

     

     

  • Prezados, acredito que, além do problema de performance da letra C (tabela hash), ela não resolveria o problema, pois poderia haver colisões. Assim, valores entre o mínimo e o máximo poderiam ter a função hash colidindo com o valor mínimo (ou máximo), o que faria com que a lista encadeada (supondo que esse seja o método de resolução de conflito utilizado) misturasse valores.

  • Força Guerreiro!!!!!!


ID
1404427
Banca
FGV
Órgão
PROCEMPA
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere uma busca por uma chave entre 1.000.000, que pode ser feita através de uma Busca binária, Hashing ou Árvore B de ordem 20.

Supondo que os três operam em condições semelhantes e satisfatórias, com os registros armazenados num disco rígido, assinale a opção que mostra as alternativas na ordem do menor para o maior tempo de busca

Alternativas
Comentários
  • Hashing possui o menor tempo de busca. Com essa informação é possível matar a questão.

    Vamos na fé.

  • Força Guerreiro!!!!!!


ID
1782739
Banca
CESPE / CEBRASPE
Órgão
TJ-DFT
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

No que se refere à organização de arquivos e métodos de acesso a bancos de dados, julgue o próximo item.

O acesso direto a registros será eficiente ao se usar funções hash, visto que essas funções garantem uma relação unívoca entre o registro e a sua localização física.

Alternativas
Comentários
  • Comentário: Realmente o acesso a registros usando funções hash torna a operação mais rápida, contudo não existe garantia de que existe uma relação unívoca entre o registro e sua localização. Tudo vai depender da existência ou não de colisões dentro da funcão hash e de como essas colisões são tratadas. Sendo assim alternativa está incorreta.

    Fonte: http://www.estrategiaconcursos.com.br/blog/comentario-de-prova-tjdft-cargo-4-suporte-em-ti-bd-e-sgbds/

  • Falar que o hash garante uma localização física unívoca é viagem. Hash não lida com localização física. Em situações de backup ou alta disponibilidade, por exemplo, pode haver mais de um lugar para armazenamento físico para registros.

  • Segundo Navathe(2011,p.408),"O problema com a maioria das funções de hashing é que elas não garantem que valores distintos terão endereços de hash distintos, pois o espaço do campo de hash- o número de valores possíveis que um campo de has pode ter- normalmente é muito maior do que o espaço de endereços- o número de endereços disponíveis para registros."

     

    -SISTEMAS DE BANCO DE DADOS-NAVATHE-2011. 6 EDIÇÃO.

  • ERRADO

    Outro ponto importante a se observar é que a função Hash não faz acesso direto, é preciso uma função hash para fazer o meio campo entre a chave e o seu endereço na memória, QUE NÃO É FÍSICO.

  • Força Guerreiro!!!!!!


ID
1796248
Banca
FCC
Órgão
DPE-SP
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Um Programador da Defensoria Pública do Estado de São Paulo foi solicitado a propor uma solução para o problema: Há uma quantidade grande de dados classificáveis por chave e estes dados devem ser divididos em subconjuntos com base em alguma característica das chaves. Um método eficiente deve ser capaz de localizar em qual subconjunto deve-se colocar cada chave e depois estes subconjuntos bem menores devem ser gerenciados por algum método simples de busca para que se localize uma chave rapidamente. O Programador propôs como solução, corretamente, a implementação de

Alternativas
Comentários
  • ?!?!

    http://www.ime.usp.br/~pf/estruturas-de-dados/aulas/st-hash.html

  • Palavras-chave que matam a questão:

    dividos em subconjuntos 

    subconjuntos bem menores (pode-se usar o hash aberto, com estrutura auxiliar, com um método simples de busca)

  • Força Guerreiro!!!!!!

  • GABARITO B

    Tabela hash: É uma  estrutura  de  dados  não  linear Os  elementos  são  inseridos,  removidos  ou   pesquisados em uma posição determinada por uma função de hashing (ou função de dispersão),  que, conforme uma chave de entrada, determina qual a posição que o elemento deve seguir.


ID
1822942
Banca
CESPE / CEBRASPE
Órgão
TRE-PI
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de estruturas de dados, assinale a opção correta.

Alternativas
Comentários
  • a) ERRADA. Acho que nó está mais associado ao conceito de árvore, grafob

    b) CERTA.

    c) ERRADA. Vetores e matrizes são estruturas de dados estáticas.

    d) ERRADA. Vetores ou arrays são estruturas de dados lineares e estáticas, isto é, são compostas por um número fixo (finito) de elementos de um determinado tipo de dados

    e) ERRADA. A estrutura condicional somente retorna valores lógicos (V ou F), porém não há essa classificação de estática ou dinâmica

  • Definição de tabela hash: https://pt.wikipedia.org/wiki/Tabela_de_dispers%C3%A3o.

  • Força Guerreiro!!!!!!


ID
1822945
Banca
CESPE / CEBRASPE
Órgão
TRE-PI
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

No método de transformação (hashing), os registros armazenados em uma tabela são diretamente endereçados a partir de uma transformação aritmética sobre a chave de pesquisa. Com relação às funções de transformação e colisões, assinale a opção correta.

Alternativas
Comentários
  • a) ERRADA. Chaves nem sempre são valores numéricos.  As chaves podem consistir em nomes de

    pessoas. Solução: Todo dado não numérico corresponde uma representação numérica no computador.

     Assim sendo, todas as chaves são consideradas numéricas.

    Fonte: https://docente.ifrn.edu.br/camilataumaturgo/disciplinas/2014.2/estruturas-de-dados/tabela-hash

    b) ERRADA. É o método da divisão. OBS.: mesmo que você não soubesse os tipos de métodos das funções de dispersão, dava pra matar essa, visto que resto só existe na divisão ;-D

    Fonte: https://docente.ifrn.edu.br/camilataumaturgo/disciplinas/2014.2/estruturas-de-dados/tabela-hash

    c) ERRADA. M não representa o valor da chave e sim o tamanho do vetor.

    Fonte: https://docente.ifrn.edu.br/camilataumaturgo/disciplinas/2014.2/estruturas-de-dados/tabela-hash

    d) CERTA. Endereçamento separado é o mesmo que hashing aberto. Neste caso, um registro aponta para uma lista encadeada em que são armazenados os registros em conflito 

    e) ERRADA. Endereçamento aberto é o mesmo que hashing fechado. Neste caso, os resultados são armazenados diretamente no próprio vetor e não em outra estrutura.

  • LETRA "D"

    Na tabela de hash função de dispersão que gera um índice a partir de determinada chave e que, para resolver os problemas de colisões, é combinada com outros tipos de estrutura de dados.

  • Força Guerreiro!!!!!!


ID
1826992
Banca
FGV
Órgão
TJ-PI
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Numa tabela hash adequadamente dimensionada, com N chaves, o número médio de acessos para localização de uma chave situa-se entre:

Alternativas
Comentários
  • Uma tabela hash adequadamente dimensionada quer dizer que ela não terá muitas colisões. As suas chaves estarão bem distribuídas. Logo, o número médio de acessos será entre 1 e 2.

  • Se for por encadeamento: uso de listas encadeadas (O(n) na pesquisa)
    Outra função de hash (O(1) na pesquisa)

  • Força Guerreiro!!!!!!


ID
1866817
Banca
CESPE / CEBRASPE
Órgão
TRE-PE
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Assinale a opção correspondente a estrutura de dados que utiliza uma função de dispersão que gera um índice a partir de determinada chave e que, para resolver os problemas de colisões, é combinada com outros tipos de estrutura de dados.

Alternativas
Comentários
  • Toda tabela de símbolos tem um universo de chaves, que é o conjunto de todas as possíveis chaves. O conjunto das chaves efetivamente usadas em uma determinada aplicação é, em geral, apenas uma pequena parte do universo de chaves. Nessas circunstâncias, faz sentido usar uma tabela de tamanho bem menor que o tamanho do universo de chaves.

     

    Denotaremos o tamanho de nossa tabela por  M.  A tabela terá a forma  tab[0 .. M-1] .  Temos que inventar agora uma maneira de mapear o universo de chaves no conjunto de índices da tabela.  Esse é o papel da função de espalhamento (= hash function).  A função de espalhamento recebe uma chave v e devolve um número inteiro h no intervalo 0..M-1.

     

    O número h é o código de espalhamento (= hash code) da chave v. É fundamental que a função de espalhamento seja uma função no sentido matemático do termo, isto é, que para cada chave v a função devolva sempre o mesmo código de espalhamento.  Além disso, uma boa função de espalhamento espalha as chaves uniformemente pelo conjunto de índices.

     

    Como o número de chaves é em geral maior que M, é inevitável que a função de espalhamento leve várias chaves diferentes no mesmo índice. Dizemos que há uma colisão quando duas chaves diferentes são levadas no mesmo índice.

     

    Fonte: http://www.ime.usp.br/~pf/mac0122-2002/aulas/hashing.html

  •  a)listas encadeadas - estrutura de dados abstrata que consiste em 2 elementos: dado e ponteiro para o proximo elemento. Para inserir um node depois de 1 especifco, o apontamento *proximo do novo node deve ser o proximo do node anterior.

     b)quicksort - algoritmo de organização

     c)árvore binária - estrutura abstrata que usa nodes de forma hierarquica

     d)vetores - estrutura de dados homogênea e estática que usa indices para percorrer elementos

     e)tabela hash - correto

  • Força Guerreiro!!!!!!

  • GABARITO E

    Tabelas Hash (Tabela de Dispersão): É uma estrutura de dados não linear.  Os elementos são inseridos, removidos ou pesquisados em uma posição determinada por uma função de hashing (ou função de dispersão), que, conforme uma chave de entrada, determina qual a posição que o elemento deve seguir.

    Tratamento de colisões:

    • Open Address Hashing (Encaminhamento aberto)
    • Closed Address Hashing (Encaminhamento fechado)

ID
1885120
Banca
FGV
Órgão
IBGE
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere uma tabela hash com as seguintes características:

1. As chaves são as letras A,B,C,D,H.J,K,M,N,O,P,R,S,T,U;

2. A tabela possui 11 posições, referenciadas pelos índices de 0 até 10;

3. A função de hash é definida como hash(x)=posição(x) mod 11 onde x é a chave, e posição(x) é a posição da chave no alfabeto ABCDEFGHIJKLMNOPQRSTUVWXYZ, tal que posição(“A”) retorna 1 e posição(“Z”) retorna 26.

Analise as afirmativas sobre a tabela após seu preenchimento com as chaves listadas acima.

I. Nenhuma chave foi alocada à posição 6;

II. A chave “K” foi alocada à posição zero;

III. As chaves “B” e “N” colidiram na posição 3;

IV.Apenas uma letra foi alocada à posição 9.

Está correto somente o que se afirma em: 

Alternativas
Comentários
  • Fica mais fácil se escrevermos o alfabeto e colocarmos o hash(x) correspondente (posição(x) mod 11)

    A B C D E F G H I  J K L M N O P Q R S T  U V W X Y Z
    1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4

    Lembrando que devemos nos basear nas chaves dada pela questão e não no alfabeto como um todo
    A,B,C,D,H.J,K,M,N,O,P,R,S,T,U;

    I. Nenhuma chave foi alocada à posição 6;
    Na posição 6 estão F e Q. Porém ambas não estão nas chaves dadas. CORRETA

    II. A chave “K” foi alocada à posição zero;
    CORRETA

    III. As chaves “B” e “N” colidiram na posição 3;
    B foi colocada na posição 2 e N na posição 3. ERRADA.

    IV.Apenas uma letra foi alocada à posição 9.
    Na posição 9 foram alocados I e T. Porém I não está na lista de chaves dadas. Logo, somente T foi alocada na posição 9. CORRETA.

  • Força Guerreiro!!!!!!


ID
1891834
Banca
IF-SC
Órgão
IF-SC
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Em processamento de dados, diversas técnicas são estudadas como forma de tornar mais eficazes os processos de indexação, organização e armazenamento de dados. Sobre as afirmações abaixo, assinale com V as verdadeiras e com F as falsas.

( ) O hashing é uma metodologia de indexação de arquivos empregada por sistemas operacionais que possibilita o acesso sequencial aos dados.

( ) A organização direta de arquivos também é conhecida como organização aleatória de arquivos e possibilita acessar diretamente um registro em disco, usando-se uma chave de registro.

( ) Uma colisão acontece quando os discos deixam de funcionar ao executarem uma operação de gravação (escrita).

( ) Dispositivo de armazenamento com acesso direto é indispensável à organização sequencial de arquivos, pois permite a criação de novos arquivos sequenciais, contendo tanto os registros atualizados quanto os não alterados.

( ) A organização sequencial de arquivos determina que os registros sejam armazenados de acordo com um campo-chave. É exemplo de um campo-chave o CPF de um indivíduo.

Assinale a alternativa que contém a sequência CORRETA, de cima para baixo.

Alternativas
Comentários
  • Não encontrei este conceito da segunda alternativa no livro do Stallings.

    A organização direta de arquivos também é conhecida como organização aleatória de arquivos e possibilita acessar diretamente um registro em disco, usando-se uma chave de registro.

    organização direta = organização aleatória ?

  • http://www.ufpa.br/sampaio/curso_de_estdados_2/organizacao_arquivos/organizacao_arquivos.htm#8

  • Força Guerreiro!!!!!!


ID
1894210
Banca
FGV
Órgão
AL-MT
Ano
2013
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Leia o fragmento a seguir.

Hashing para arquivos em disco denominam‐se _____. Para se adaptar as características de armazenamento em disco, se considera que o espaço de endereços alvo é constituído por _____, cada um deles mantém múltiplos registros, formando um _____ de blocos consecutivos.”

Assinale a alternativa cujos itens completam corretamente as lacunas do fragmento acima.

Alternativas
Comentários
  • Bucket: unidade de armazenamento de registros

  • Chama-se de hash externo quando se trata de hashing para arquivos em disco. Neste caso considera-se que o espaço de endereçamento alvo é constituído de buckets, que são grupos de blocos de disco consecutivos. A função hash mapeia uma chave a um número de bucket relativo ao invés de um endereço absoluto de bloco para o bucket. Uma tabela, mantida no cabeçalho do arquivo, converte o número do bucket para o endereço de bloco de disco correspondente.

     

     

  • Força Guerreiro!!!!!!


ID
1924612
Banca
Marinha
Órgão
Quadro Complementar
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Em relação à estrutura de dados, assinale a opção correta quanto ao método "hashing" .

Alternativas
Comentários
  • O gabarito é a letra A.

     

    Hashing é um método de cálculo de endereços, não só para facilitar as pesquisas, mas também a organização física das tabelas.


ID
1987006
Banca
CESPE / CEBRASPE
Órgão
POLÍCIA CIENTÍFICA - PE
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O tamanho, em bites, da saída do algoritmo de hash MD5 é igual a

Alternativas
Comentários
  • O MD5 (Message-Digest algorithm 5) é uma função de dispersão criptográfica (ou função hash criptográfica) de 128 bits unidirecional desenvolvido pela RSA Data Security, Inc., descrito na RFC 1321, e muito utilizado por softwares com protocolo ponto-a-ponto (P2P, ou Peer-to-Peer, em inglês) na verificação de integridade de arquivos e logins.

    O md5 é uma função criptográfica, mas não deve ser confundido com criptografia. A encriptação é uma tarefa de mão dupla que você usa sempre que precisa armazenar com segurança uma informação, mas precisa recuperá-la mais tarde através de uma chave simétrica ou privada. Já o hash, é comumente utilizado quando você necessita comparar informações. 

     

    Fonte: https://pt.wikipedia.org/wiki/MD5

  • MD5 - 128 bits

    SHA-1 - 160 bits

  • Gabarito B

    Como definido no RFC1321 o MD5 (Message-Digest algorithm 5) é um algoritmo de resumo de mensagem. Ele recebe como entrada uma mensagem de um comprimento arbitrário e produz como saída uma "impressão digital" de 128-bits.

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Força Guerreiro!!!!!!


ID
2007079
Banca
Aeronáutica
Órgão
EEAR
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Quais são as funções hashing mais conhecidas e usadas?

Alternativas

ID
2287099
Banca
FGV
Órgão
AL-MT
Ano
2013
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

No Hash extensível, considerando d como sendo a profundidade global do diretório, o tamanho do bucket será:

Alternativas
Comentários
  • Hash Extensível

     

    O hash extensível usa um diretório dinâmico de registros que armazena uma tabela, onde cada registro contém um ponteiro para balde (tabela que armazena os registros) e cada balde tem um número fixo de itens. Aplicando-se a função nas chaves obteremos um número binário. Desse número devemos escolher uma quantidade de bits que fará a diferenciação entre os índices a serem armazenados no diretório. A esse número de bits escolhidos damos o nome de profundidade global (d) que especificará o número de linhas da tabela (diretório), que será 2d.

     

    http://www.ecnsoft.net/wp-content/plugins/downloads-manager/upload/UFSC%20-%20Hash%20Extensivel.pdf

  • Hashing extensível: neste tipo de hashing é mantido um vetor de 2d endereços de buckets, onde d é chamado de profundidade global, que funciona como um tipo de diretório. O valor inteiro correspondente aos primeiros d bits de um valor hash é utilizado como índice de um vetor para determinar uma entrada no diretório e o endereço naquela entrada determina o bucket no qual os registros correspondentes serão armazenados. Uma profundidade local d', armazenada em cada bucket, especifica o número de bits no qual os conteúdos dos buckets são baseados.

     

    http://www.inf.unioeste.br/~olguin/4458-semin/G2-monografia.pdf


ID
2440663
Banca
FUNCERN
Órgão
IF-RN
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Sobre os algoritmos de hash MD5 e SHA, analise as afirmativas a seguir.

I. O MD5 e o SHA são invulneráveis ao ataque de aniversário.

II. O SHA-1 possui tamanho de hash de 20 bytes.

III. Ambos são algoritmos de hash, tendo como entrada dados de tamanho variável e saída de tamanho também variável.

IV. O MD5 gera um valor de hash de 128 bits.

Estão corretas as afirmativas

Alternativas
Comentários
  • I. O MD5 e o SHA são invulneráveis ao ataque de aniversário. ERRADO - Ambos são vulneráveis ao ataque estatístico de aniversário que reduz as chances de colisão em: MD5 2^64 e SHA1 2^80.

    II. O SHA-1 possui tamanho de hash de 20 bytes. CERTO (160bits de digest)

    III. Ambos são algoritmos de hash, tendo como entrada dados de tamanho variável e saída de tamanho também variável. ERRADO - Entrada é variável, mas saída é fixa (digest MD5 = 128b; SHA1 = 160b).

    IV. O MD5 gera um valor de hash de 128 bits. CERTO

  • Força Guerreiro!!!!!!

  • a-

    The MD5 (message-digest algorithm) hashing algorithm is a 128-bit one-way cryptographic function that accepts a message of any length as input and returns as output a fixed-length digest value to be used for authenticating the original message.

    https://en.wikipedia.org/wiki/MD5


ID
2488669
Banca
FGV
Órgão
IBGE
Ano
2017
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Algoritmos de hash são bastante utilizados como elementos de garantia da segurança da informação. A propriedade da informação garantida pela utilização desses algoritmos é a:

Alternativas
Comentários
  • Letra C)  * Hash(Resumo da Mensagem)

     

    Objetivo do Hash é garantir a integridade da mensagem, ou seja, garantir que a mensagem  não será alterada no meio do caminho.

  • Força Guerreiro!!!!!!


ID
2510347
Banca
NC-UFPR
Órgão
ITAIPU BINACIONAL
Ano
2017
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Funções hash são utilizadas por diversos protocolos de rede e possuem diversas aplicações, entre as quais a verificação de corretude de uma mensagem enviada. Sobre funções hash no contexto de redes, assinale a alternativa correta.

Alternativas
Comentários
  • Gabarito D

    Uma função hash é um algoritmo que mapeia dados de comprimento variável para dados de comprimento fixo. Os valores retornados por uma função hash são chamados valores hashcódigos hashsomas hash (hash sums), checksums ou simplesmente hashes.

    Um hash (ou escrutínio) é uma sequência de bits geradas por um algoritmo de dispersão, em geral representada em base hexadecimal, que permite a visualização em letras e números (0 a 9 e A a F), representando um nibble cada. O conceito teórico diz que "hash é a transformação de uma grande quantidade de dados em uma pequena quantidade de informações".

    Essa sequência busca identificar um arquivo ou informação unicamente. Por exemplo, uma mensagem de correio eletrônico, uma senha, uma chave criptográfica ou mesmo um arquivo. É um método para transformar dados de tal forma que o resultado seja (quase) exclusivo. Além disso, funções usadas em criptografia garantem que não é possível a partir de um valor de hash retornar à informação original.

    Como a sequência do hash é limitada, muitas vezes não passando de 512 bits, existem colisões (sequências iguais para dadosdiferentes). Quanto maior for a dificuldade de se criar colisões intencionais, melhor é o algoritmo.

    Uma função de hash recebe um valor de um determinado tipo e retorna um código para ele. Enquanto o ideal seria gerar identificadores únicos para os valores de entrada, isso normalmente não é possível: na maioria dos casos, o contra-domínio de nossa função é muito menor do que o seu domínio, ou seja, {\displaystyle x} (o tipo de entrada) pode assumir uma gama muito maior de valores do que {\displaystyle \operatorname {hash} (x)} (o resultado da função de hash).

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Fui por eliminação, mas não entendi o que quiseram dizer com "não são injetoras".

  • Não é injetora porque há colisão.

  • a) Uma função hash requer mensagens de tamanho fixo. As mensagens podem ter qq tamanho.

    b) Não é necessário recalcular o valor hash de uma dada mensagem para autenticá-la. Para autenticar uma msg, é necessário calcular o hash para provar que a mensagem em si é autêntica.

    c) É desejável ser computacionalmente viável inverter uma função hash, ou seja, dado um hash h, encontrar uma mensagem m tal que, aplicada na função de hash H, H(m) = h. É praticamente impossível de inverter, isto é, de recriar o valor de entrada utilizando somente o valor de dispersão. https://pt.wikipedia.org/wiki/Fun%C3%A7%C3%A3o_hash_criptogr%C3%A1fica

    e) Uma dada função de hash pode gerar valores de hash de diferentes tamanhos. Hash function é qualquer função usada para mapear dados de tamanhos diferentes em dados de tamanho fixo. MD5: 128 bits, SHA-1: 160 bits.

  • sobre a letra (D), função injetora é função de mão única

  • a) Uma função hash requer mensagens de tamanho fixo.  (Não requer, ela GERA msg de tamanho fixo)

    b) Não é necessário recalcular o valor hash de uma dada mensagem para autenticá-la. (o cálculo verifica a integridade)

    c) É desejável ser computacionalmente viável inverter uma função hash, ou seja, dado um hash h, encontrar uma mensagem m tal que, aplicada na função de hash H, H(m) = h. (Hash é UNIDIRECIONAL)

    d) Funções hash não são injetoras.

    e) Uma dada função de hash pode gerar valores de hash de diferentes tamanhos.  (GERA msg de tamanho fixo)

     

    @papirobizurado

  • Função injetora é aquela que diferentes elementos estão em diferentes posições.

    No caso, as  funções hash não são injetoras porque tem colisões, ou seja, pode acontecer de várias chaves apontarem pra mesma posição.

  • Hash é sobrejetora. Pode haver sobreposição de Hash a partir de entradas diferentes na mesma função

    Imagem: shorturl.at/luzD7

  • Força Guerreiro!!!!!!

  • Força Guerreiro!!!!!!

  • GABARITO D

    Função injetora é uma função que preserva a distinção: nunca aponta elementos distintos de seu domínio para o mesmo elemento de seu contradomínio.

    Dessa forma, funções hash não são injetora, uma vez que permite que um mesmo endereço seja gerado a partir de chaves de entrada diferentes.

    Colisão: A  função  de  Hashing  pode,  por  vezes,  gerar  o  mesmo  endereço  para  chaves  de  entrada   diferentes.


ID
2510917
Banca
FCC
Órgão
ARCE
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O Quicksort é um dos métodos de ordenação mais eficientes disponíveis e a técnica de busca por espalhamento ou hashing é muito utilizada em diversas aplicações. Em relação a estes métodos é correto afirmar:

Alternativas
Comentários
  • Gabarito A duvidoso...

    Essa definição pode-se comparar como Mergersort.

    MergeSort - divide para conquistar sucessivamente o vetor, e vai ordenando juntando os vetores. Geralmente se implementa recursivamente.
     

    Quicksort - Escolhe-se um pivot e particiona-se a lista em duas sublistas: uma com os elementos menores que ele e outra com os maiores, que, ao serem ordenadas e combinadas com o pivot, geram uma lista ordenada. O processo é aplicado às partições para ordená-las. Embora tenha uma complexidade de pior caso de O(n2 ), no caso médio é de O(n log n).
     

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Força Guerreiro!!!!!!


ID
2543149
Banca
FGV
Órgão
SEPOG - RO
Ano
2017
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A colisão é um efeito característico dos algoritmos de resumo de mensagem e ocorre, com maior frequência, quanto menor for o tamanho do bloco de bits do resumo (digest) gerado pelo algoritmo.


No caso do SHA1 (Short Hash Algorithm 1), o tamanho do bloco do resumo é

Alternativas
Comentários
  • SHA-1 (SECURE Hash Algotithm 1 ) produz um valor de hash de 160 bits. Em 2002, o NIST produziu uma versão revisada do padrão, FIPS 180-2, que definiu três novas versões do SHA, com tamanhos de valor de hash de 256, 384 e 512 bits.

     

    Referência: Stallings, William, Criptografia e Segurança de Redes Princípios e Práticas. 6. ed. São Paulo: Pearson Education do Brasil, 2015.

  • Engraçado... o enunciado pede "o tamanho do bloco do resumo"

    Ai eu fico na dúvida se ele quer saber o tamanho do bloco ou o tamanho do resumo (message digest) em bits...

    Bom, como não tem a opção 512 bits, referente ao tamanho do bloco do SHA-1, só me resta marcar a opção 160 bits, referente ao tamanho do resumo :P

     

    Segue uma fonte:

     

    Dentre os principais [algoritmos de função hash] podemos destacar o Message Digest 5 (MD-5) e o Secure Hash Algorithm 1 (SHA-1). Ambos processam os dados de entrada em blocos de 512 bits. O MD5 retorna sumários de 128 bits, enquanto o SHA-1 gera sumários [produz um resumo] de 160 bits.

     

    Fonte: Segurança em Redes Privadas Virtuais - VPNs - Alexandre Guedes Guimaraes, Rafael Dueire Lins, Raimundo Correa Da Oliveira

  • A colisão é um efeito característico dos algoritmos de resumo de mensagem e ocorre, com maior frequência, quanto menor for o tamanho do bloco de bits do resumo (digest) gerado pelo algoritmo

  • SHA-1: 160 bits / 28 Bytes

  • Força Guerreiro!!!!!!


ID
2565709
Banca
CESPE / CEBRASPE
Órgão
TRE-TO
Ano
2017
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A estrutura de dados que consiste no armazenamento de cada elemento em um endereço calculado a partir da aplicação de uma função sobre a chave de busca denomina-se

Alternativas
Comentários
  • Em ciência da computação, uma tabela de dispersão (também conhecida por tabela de espalhamento ou tabela hash, do inglês hash) é uma estrutura de dados especial, que associa chaves de pesquisa a valores. Seu objetivo é, a partir de uma chave simples, fazer uma busca rápida e obter o valor desejado. É algumas vezes traduzida como tabela de escrutínio.[1]

     

     

     

    LETRA B

  • Gabarito: Letra B.

     

    a) lista.

    ERRADO. Na lista os elementos são armazenados sequencialmente, sem nenhum cálculo da sua posição.

     

    b) tabela hashing.

    CERTO. Na tabela de hashing, é aplicada a função de HASHING sobre a chave, gerando um identificador numérico único para essa chave. O item então é armazenado na posição indicada pelo identificador numérico. Isso facilita a busca e o acesso, pois a comparação numérica é normalmente mais rápida que a comparação de chaves complexas.

     

    c) deque.

    ERRADO. O deque (ou Double Endended QUEue) é uma fila com 2 pontas, onde você pode adicionar elementos tanto no fim quanto no início. Não existe função aplicada sobre a chave.

     

    d) fila.

    ERRADO. Na fila os elementos são sempre adicionados no final, não existe função aplicada sobre a chave.

     

    e) árvore binária balanceada.

    ERRADO. Essa estrutura de dados, também chamada de AVL, guarda os elementos em uma estrutura de árvore, onde a posição de inserção do nó é calculada a partir da comparação da chave com as outras chaves presentes na árvore (e não de uma função sobre a chave).

  •  tabela hashing= HASHING sobre chaves

  • Força Guerreiro!!!!!!


ID
2629825
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue o item seguinte, quanto aos conceitos da programação estruturada e da programação orientada a objetos e aos métodos de ordenação, pesquisa e hashing.


Os elementos-chave nas funções de hashing são sempre números naturais.

Alternativas
Comentários
  • Chaves na função Hash podem ser Strings.

  • Gabarito errado

    Podem ser strings também.

     

    Vamos na fé !

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Uma função hash é qualquer função que possa transformar um dado de tamanho arbitrário em um dado de tamanho fixo. Essa transformação, que pode ser feita em ambas as vias, é feita através de chaves que podem ser de números naturais ou também strings.

    Na programação de computadores, uma cadeia de caracteres ou string é uma sequência de caracteres, geralmente utilizada para representar palavras, frases ou textos de um programa.

     

    Gabarito: ERRADO

  • Costuma ser hexadecimal (0 a 9 e A a F)

  • Isso vai cair na pf, amigos?

  • A função hash é um algoritmo matemático para a criptografia, na qual ocorre uma transformação do dado (como um arquivo, senha ou informações) em um conjunto alfanumérico com comprimento fixo de caracteres.

    Para você ter uma noção, o hash da palavra "voitto" utilizando a função MD5 é: 494009d6ad36e1caa1b05e7cc98ab48f.

  • Força Guerreiro!!!!!!


ID
2699629
Banca
FGV
Órgão
Banestes
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Sobre as características de índices estruturados na forma de Btrees e Hash tables, analise as afirmativas a seguir.


I. Hash tables aplicam-se somente em buscas que referenciam a chave por inteiro (operador =).

II. B-trees favorecem consultas que buscam chaves num determinado intervalo (operadores >= e <=).

III. B-trees são usualmente mais lentas para buscas pela chave (operador =).

IV. Hash tables favorecem buscas, com o operador ‘LIKE’ do SQL, que não contenham caracteres curingas na primeira posição.

V. B-trees não se aplicam em buscas que se referem a uma substring à esquerda da chave.


Está correto o que se afirma em:

Alternativas
Comentários
  • b-

    B-trees permitem busca com operadores de comparação “>” e “<”.B-trees permitem busca a partir de uma substring à esquerda da chave.

  • Força Guerreiro!!!!!!

  • Mesmo não sabendo dá deduzir algumas assertivas:

    I - O hash é um código tipo esse: "faf18074f1a90579f9521f2ddc53859d", veja que com o operador de "=" torna-se possível localiza-lo. Assertiva Correta

    IV - Agora pensa no trampo que ia ser achar esse Hash ai de cima utilizando o LIKE do SQL xD. Por isso que essa assertiva está incorreta

    Só com essas duas já dava pra resolver a questão.

    Bons Estudos. Não desiste!


ID
2839417
Banca
FADESP
Órgão
IF-PA
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere que em uma tabela de dispersão (ou tabela hash) de comprimento m = 9, inicialmente vazia, que usa endereçamento aberto, técnica de tentativa linear para resolver colisões e função de dispersão h(k) = k mod m, onde k é a chave a ser inserida, foram inseridas as seguintes chaves: 3, 14, 15, 81, 65, 19, 35, 40 e 50 (nesta ordem). A tabela de dispersão após estas inserções é

Alternativas
Comentários
  • chaves inseridas 3, 14, 15, 81, 65, 19, 35, 40 e 50

    Tabela

    início tabela

    posição 8 - 35/9 resta 7 logo fica na posição 8 da tabela

    posição 7 - acontece que 50 dividido por 9 é 5 e deveria ficar na posição do 5, mas já ta ocupada pelo 14

    posição 6 - 15/9 resta 6 logo fica na posição 6 da tabela

    posição 5 - 14/9 resta 5 logo fica na posição 5 da tabela

    posição 4 - 40/9 resta 4 logo fica na posição 4 da tabela

    posição 3 - 3/9 resta 3 logo fica na posição 3 da tabela

    posição 2 - 65/9 resta 2 logo fica na posição 2 da tabela

    posição 1 - 19/9 resta 1 logo fica na posição 1 da tabela

    posição 0 - 81/9 resta 0 logo fica na posição 0 da tabela

    fim tabela

    resultado: 81,19,65,3,40,14,15,??50 entra pq ficou sem posição??,35

    Entendi a questão assim

  • Força Guerreiro!!!!!!


ID
3015658
Banca
FAURGS
Órgão
UFRGS
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Qual é o método de pesquisa, no qual os registros armazenados em uma tabela são diretamente endereçados a partir de uma função aritmética sobre a chave de pesquisa?

Alternativas
Comentários
  • Conceito de hash(Tabela de dispersão)(Tabela de espalhamento): Os registros armazenados em uma tabela são endereçados a partir de uma transformação aritmética sobre a chave de pesquisa.

     

     

    https://www2.unifap.br/furtado/files/2016/11/Aula7.pdf

  • Força Guerreiro!!!!!!

  • GABARITO B

    Tabela Hash: Os  elementos  são  inseridos,  removidos  ou   pesquisados em uma posição determinada por uma função de hashing (ou função de dispersão),  que, conforme uma chave de entrada, determina qual a posição que o elemento deve seguir.


ID
3055399
Banca
FCC
Órgão
TCE-RS
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Os métodos hashing envolvem o processo de transformação de uma chave em um endereço. Sobre estes métodos é INCORRETO afirmar:

Alternativas
Comentários
  • "existe grande chance de haver colisões" , discordo dessa afirmativa.

  • GAB: Letra E

    a) A função hash de transformação deve envolver uma operação simples sobre a chave.

    b) O índice gerado pela função hash é chamado endereço primário e o endereço verdadeiro do registro é chamado endereço efetivo.

    c) Quando duas ou mais chaves possuem o mesmo endereço primário ocorre uma colisão. Mesmo que se obtenha uma função hash que distribua as chaves de forma uniforme, existe grande chance de haver colisões.

    d) Deve haver uma forma de tratar as colisões. Uma das formas de se resolver as colisões é construindo uma lista encadeada para cada endereço da tabela. Assim, todas as chaves com mesmo endereço são encadeadas.

    e) O tempo gasto com pesquisas em uma tabela hashing depende do tamanho da tabela e aí reside a grande vantagem destes métodos: sempre são usadas tabelas pequenas. (O tamanho da tabela vai depender da implementação utilizada).

  • Força Guerreiro!!!!!!


ID
3136069
Banca
Exército
Órgão
EsFCEx
Ano
2019
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Suponha que uma função hash seja escolhida aleatoriamente de uma coleção universal de funções hash e usada para aplicar hash a n chaves em uma tabela T de tamanho m, usando encadeamento para resolver as colisões. Se a chave k não estiver na tabela, o comprimento esperado E [nh(k) ] é no máximo o fator de carga

Alternativas
Comentários
  • Resposta letra A

  • Uma tabela de dispersão ou tabela de hash é um vetor cujas posições armazena zero, uma, ou mais chaves.

    M : número de posições na tabela de hash

    N : número de chaves da tabela de símbolos

     = N/M :  fator de carga (load factor)


ID
3265117
Banca
FCM
Órgão
Prefeitura de Caranaíba - MG
Ano
2019
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A técnica de hashing que, no pior caso, realiza O(1) acessos à memória para executar uma busca é denominada hashing

Alternativas
Comentários
  • Busca por Hash, é uma busca do "HASH Perfeito" digamos.

  • GABARITO LETRA B

    Em um algoritmo de hash, para cada entrada, haverá um valor de 'hash' correspondente, contudo entradas diferentes podem causar o mesmo valor de 'hash', é o que chamamos de colisão, quando um algoritmo de 'hashing' causa colisões, chamamos de 'hash imperfeito', quando não, de 'hash perfeito'.


ID
3564295
Banca
CESPE / CEBRASPE
Órgão
TST
Ano
2007
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Quanto a estruturas de dados e algoritmos básicos, julgue o item seguinte.


A ocorrência de colisões de hashing em um sistema de armazenamento de dados por tabelas hashing encadeadas indica a saturação desse sistema de armazenamento.

Alternativas
Comentários
  • E para os assinantes? Sem comentários e sem aulas

    :(

  • creio que não, porque no caso do encadeamento se as inserções forem muitas vezes feitas em um bucket (falta de sorte) haverá muitos buckets livres (sistema não saturado), porém aquele bucket ficará saturado e com vários encadeamentos


ID
3617512
Banca
CETAP
Órgão
SANEPAR
Ano
2013
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Selecione a alternativa que complete corretamente a seguinte frase: “A estrutura de dados _________________ armazena valores através de chaves e se baseia em uma função de dispersão que tem por objetivo associar um índice a cada chave, e quando duas chaves recebem um mesmo índice, ocorre ___________________.":

Alternativas
Comentários
  • Força Guerreiro!!!!!!


ID
5164261
Banca
VUNESP
Órgão
TJM-SP
Ano
2021
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma certa tabela de dispersão (hash) em um programa de computador utiliza a função de espalhamento h(k) = k mod m, em que k é a chave e m é o tamanho de um vetor de listas ligadas indexado por h(k).


Para m = 5013, o índice obtido para k = 10034 é

Alternativas
Comentários
  • 10034 % 5013 = 8

  • https://pt.wikipedia.org/wiki/Tabela_de_dispers%C3%A3o

  • Nossa como senti uma fisgada no rim!

    Errei a questão por babaquice. Nem li direito, quase 1h da manhã e eu "ahhh resto da divisão 10034 por 5013 só pode ser 2", nem vi o 8, nem parei pra pensar um pouco!

    Fica de aviso, por mais fácil que pareça a questão, leia com calma... AFFF

  • Boa Sorte