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!

Considere uma classe Sorter onde está definida uma variável \tiny a[size]\tiny a[size]

    1 template<class T, int size=10>
    2 class Sorter {
    3 public:
    4    ...
    5    void insertionSort();
    6 private:
    7    int length;
    8    T a[size];
    9 };

Considere o método insertionSort() dessa classe

   11 // Pré-condição:    a[0]...a[a.length-1] é uma array de elementos
   12 //                  T não ordenada. 
   13 // Pós-condição:    A array a está ordenada por ordem decrescente.
   14 
   15 template<class T, int size>
   16 void Sorter<T,size>::insertionSort()
   17 {
   18    for (int i = 1; i < length; i++) 
   19    {
   20       T temp = a[i];
   21       int j = i - 1;
   22       while (j >= 0 && temp > a[j])
   23       {
   24          a[j+1] = a[j];
   25          j--;
   26       }
   27       a[j+1] = temp;
   28    }
   29 }

Quando ordenada em ordem descendente, utilizando o método insertionSort(), qual das listas seguintes necessita do maior número de mudanças de posição dos seus elementos?

View this question

Considere a seguinte classe

    1 // Classe que ordena uma array de objectos em ordem
    2 // decrescente utilizando o insertionSort.
    3 
    4 template<class T, int size=10>
    5 class Sorter {
    6 public:
    7    Sorter(T arr[], int s=size) 
    8       : length(s) 
    9    {  // construtor
   10       for (int i = 0; i < length; i++)
   11          a[i] = arr[i];
   12    }
   13 
   14    ...
   15    void selectionSort();
   16 private:
   17    int length;
   18    T a[size];
   19    // Trocar a[i] e a[j] na array a.
   20    void swap(int i, int j)
   21    {
   22       <código 1>
   23    }
   24 };

Considere o método selectionSort() dessa classe

   26 // Ordenar a array a em ordem decrescente, utilizando selectionSort.
   27 // Pré-condição:    a é uma array de elementos comparáveis.
   28 
   29 template<class T, int size>
   30 void Sorter<T,size>::selectionSort()
   31 {
   32    for (int i = 0; i < length - 1; i++)
   33    {
   34       // Encontrar o maior no intervalo a[i+1] a a[n-1]
   35       T max = a[i];
   36       int maxPos = i;
   37       for (int j = i + 1; j < length; j++) 
   38          // a[j] é ainda maior
   39          if (max < a[j])
   40          {
   41             max = a[j];
   42             maxPos = j;
   43          }
   44          // Troca a[i] e a[maxPos]
   45          swap(i, maxPos); 
   46    }
   47 }

Se uma array de tipo int, contiver os elementos 89, 42, -3, 13, 109, 70, 2, qual das seguintes configurações representará a array, depois da terceira passagem do referido método, na ordenação da array por ordem descendente?

View this question

Assuma que \tiny a[0] ... a[n-1]\tiny a[0] ... a[n-1] é uma array de n números inteiros positivos e que a seguinte asserção é verdadeira

a[0] > a[k] para todo o k tal que 0 < k < N

Qual das seguintes afirmações tem de ser verdadeira?

View this question

Considere uma classe Sorter onde está definida uma variável \tiny a[size]\tiny a[size]

    1 template<class T, int size=10>
    2 class Sorter {
    3 public:
    4    ...
    5    void insertionSort();
    6 private:
    7    int length;
    8    T a[size];
    9 };

Considere o método insertionSort() dessa classe

   11 // Pré-condição:    a[0]...a[a.length-1] é uma array de elementos
   12 //                  T não ordenada. 
   13 // Pós-condição:    A array a está ordenada por ordem decrescente.
   14 
   15 template<class T, int size>
   16 void Sorter<T,size>::insertionSort()
   17 {
   18    for (int i = 1; i < length; i++) 
   19    {
   20       T temp = a[i];
   21       int j = i - 1;
   22       while (j >= 0 && temp > a[j])
   23       {
   24          a[j+1] = a[j];
   25          j--;
   26       }
   27       a[j+1] = temp;
   28    }
   29 }

A invariante para o ciclo mais exterior (o ciclo for) é

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