logo

Crowdly

Browser

Add to Chrome

S2 Estruturas de Dados e Algoritmos Fundamentais 2024 02

Looking for S2 Estruturas de Dados e Algoritmos Fundamentais 2024 02 test answers and solutions? Browse our comprehensive collection of verified answers for S2 Estruturas de Dados e Algoritmos Fundamentais 2024 02 at elearning.uab.pt.

Get instant access to accurate answers and detailed explanations for your course questions. Our community-driven platform helps students succeed!

Uma certa função hash, h(x), aplicada à chave, coloca registos com as chaves: 62, 79, 81, 12, 54, 97, 34, numa tabela hash.

As colisões são tratadas por uma função re-hash, r(x), que recebe como argumento o resultado da aplicação da função hash.

Os valores-chave são introduzidos na ordem indicada acima, para produzir a seguinte tabela

ALG_01-039F

Quais são as funções h(x) e r(x), respectivamente?

View this question

A eficiência da codificação hash depende de

I.   O número de colisões que ocorre
 
II.  O tamanho dos dados na lista
 
III. O método de lidar com as colisões
View this question

Uma array contém dados que foram inseridos através da codificação hash.

Como é que um dado item deve ser pesquisado nesta array?

View this question

As chaves: 10, 28, 2, 7, 45, 25, 40, 29, são para ser inseridas na seguinte tabela hash

ALG_01-037F

A função hash é key % 11. As colisões são resolvidas pelo método "hash-and-search" (Open Addressing and Linear Probing).

Em que célula irá a chave 29 ocupar, eventualmente?

0%
0%
0%
0%
0%
View this question

É feita uma pesquisa binária numa array com 600 elementos.

No pior caso, qual dos seguintes números representa a melhor aproximação do número de iterações do algorítmo?

View this question

Um algorítmo para pesquisar por um dado valor x em grandes arrays ordenadas, compara x com cada terceiro elemento da array até que um, maior ou igual a x seja encontrado. Quando um valor maior é encontrado, o algorítmo compara x com os dois elementos anteriores.

Se a array estiver ordenada por ordem ascendente, qual das seguintes expressões descreve os casos em que o algorítmo utiliza menos comparações, para encontrar x, que aquelas utilizadas numa pesquisa binária?

View this question

O fragmento de código seguinte efectua uma pesquisa sequencial para determinar se um dado inteiro, val, está ou não armazenado numa array com elementos \tiny a[0]\tiny a[0] a a[n-1]a[n-1]

    1 intl i = 0;

    2 while (<expressão>)

    3    i++;

    4 if (i == n)

    5    return -1;      // val não encontrado

    6 else

    7    return i;       // val encontrado na posição i

Qual das seguintes expressões deverá substituir <expressão>, nesse fragmento, para que o referido algorítmo funcione como previsto?

I.   val != a[i]

 

II.  i < n && val == a[i]

 

III. val != a[i] && i < n

 

IV.  i < n && val != a[i]

 

V.   i < n || val != a[i]

0%
0%
0%
0%
0%
View this question

Suponha uma classe SomeClass onde está definida uma variável \tiny a[size]\tiny a[size]

    1 template<int size=10>

    2 class SomeClass {

    3 public:

    4    ...

    5    int binSearch(int key);

    6 private:

    7    int length;

    8    int a[size];

    9 };

Considere o seguinte método binSearch() dessa classe

   12 // Efectua uma pesquisa binária por uma chave numa array.

   13 // Pré-condição:    A array a[0]...a[a.length-1] está ordenada 

   14 //                  por ordem ascendente.

   15 // Pós-condição:    Devolve index tal que a[index] == key.

   16 //                  Se key não está em v, então devolve -1.

   17 

   18 template<int size>

   19 int SomeClass<size>::binSearch(int key)

   20 {

   21    int low = 0;

   22    int high = length - 1;

   23    while (low <= high)

   24    {

   25       int mid = (low + high)/2;

   26       if (a[mid] == key)

   27          return mid;

   28       elseif (a[mid] < key)

   29          low = mid + 1;

   30       else

   31          high = mid - 1;

   32    }

   33    return -1;

   34 }

A pesquisa binária será efectuada na seguinte lista

ALG_01-009F

Na procura pelo elemento 27, o intervalo de pesquisa depois da primeira passagem pelo ciclo while, será

View this question

Suponha uma classe SomeClass onde está definida uma variável \tiny a[size]\tiny a[size]

    1 template<int size=10>

    2 class SomeClass {

    3 public:

    4    ...

    5    int binSearch(int key);

    6 private:

    7    int length;

    8    int a[size];

    9 };

Considere o seguinte método binSearch() dessa classe

   11 // Efectua uma pesquisa binária por uma chave numa array.

   12 // Pré-condição:    A array a[0]...a[a.length-1] está ordenada 

   13 //                  por ordem ascendente.

   14 // Pós-condição:    Devolve index tal que a[index] == key.

   15 //                  Se key não está em v, então devolve -1.

   16 

   17 template<int size>

   18 int SomeClass<size>::binSearch(int key)

   19 {

   20    int low = 0;

   21    int high = length - 1;

   22    while (low <= high)

   23    {

   24       int mid = (low + high)/2;

   25       if (a[mid] == key)

   26          return mid;

   27       elseif (a[mid] < key)

   28          low = mid + 1;

   29       else

   30          high = mid - 1;

   31    }

   32    return -1;

   33 }

A pesquisa binária será efectuada na seguinte lista

ALG_01-011F

O que é que ficará armazenado em y depois de executado o seguinte?

   32 int y = binSearch(4);

View this question

O método partition(), utilizado pelo QuickSort, particiona uma lista da seguinte forma

  • Um elemento é selecciondo como pivot.
  • Os elementos da lista são re-arranjados tal que os elementos à esquerda do pivot sejam menores ou iguais a ele, e os à direita maiores ou iguais.

O que é que o particionamento de uma array necessita?

View this question

Want instant access to all verified answers on elearning.uab.pt?

Get Unlimited Answers To Exam Questions - Install Crowdly Extension Now!

Browser

Add to Chrome