SóProvas



Questões de Algoritmos de Ordenação


ID
1891
Banca
NCE-UFRJ
Órgão
BNDES
Ano
2005
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere uma árvore binária de busca com n elementos e altura mínima. O tempo de acesso a qualquer elemento desta árvore é da ordem de:

Alternativas
Comentários
  • Está questão deveria ser anulada, pois todas as alternativas estão corretas.
    A notação O significa o seguinte:
    Dadas duas funções positivas quaisquer, f e g
    f(n) = O(g(n)) se e somente se
    Existe um número real K e um número real n0 tal que f(n) <= K . g(n) para todo n > n0.
    Em palavras: para n suficientemente grande a função g multiplicada por uma constante sempre será um limite superior de f.
    Como já foi explicado acima, o tempo de acesso no caso do exercício é da ordem O(log n).
    O problema é que a função:
    1: f(n) = n é um limite superior de g(n) = log n, pois para n grande n > log n, logo log n = O(n) e a letra A é correta.
    2: f(n) = n2 é um limite superior de g(n) = log n, pois para n grande n2 > log n, logo log n = O(n2) e a letra B é correta.
    3: log n = O(log2 n) e a letra C é correta.
    4: log10 n = log2n/log210 (propriedade de logaritmos) como 1/log210 é uma constante log10 n = K log2n, log10n = O(log2n) logo a letra D é correta. Isso é importante para perceber que não importa a base do logaritmo nas notações Omega, Theta e O.
    5: f(n) = nn é um limite superior de g(n) = log n, pois para n grande nn > log n, logo log n = O(nn) e a letra E é correta.
  • A questão deveria ser anulada porque não define o que é altura mínima. Caso a árvore fosse uma AVL ou Vermelho e Preto a resposta estaria correta. No entanto, poderia ser por exemplo esta árvore [1] -> [2] -> [3] -> [4] -> [5] - > [6] e assim por diante. Neste caso o tempo seria O(n).

  • c-

    In a binary search tree, the left child of a node has a lesser value than the parent whereas the right child has a greater value than the parent. If there are n nodes in a binary search tree, the maximum height is n-1 and minimum height is ceil(log2n).

    https://www.geeksforgeeks.org/relationship-number-nodes-height-binary-tree/


ID
43708
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2008
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Sobre o algoritmo de ordenação heapsort, assinale a afirmação correta.

Alternativas
Comentários
  • Algoritmo Heapsort: tem tempo de execução de um algoritmo de ordenação por intercalação, e faz as suas operações localmente, sempre apenas um número constante de elementos é armazenados fora da estrutura de dados, como é feito o algoritmo por inserção. Mas o que ele tem de interessante é a forma que ele arranja os dados para depois ordená-los, ele utiliza uma estrutura chamada de heap ou monte, que é uma arvore binária que é extremamente importante para vários conceitos e problemas computacionais, pois depois de ordenados os dados, podemos, por exemplo, saber em que nível da árvore se encontra determinado item, operações sobre arvores binárias são conceitos muito importantes para outras estruturas como grafos.
  • O herap sort utiliza a ordenação por seleção o seu desempenho no pior caso é melhor que o desempenho no pior caso do quick sort. o hearp sort apresenta em todos os casos ( melhor, médio e pior) o desempenho de O( n log n) e o quick sort no pior caso apresenta O(n2). A ordenação de insert sort no pior caso apresenta a ordenação O(n2).
  • Basicamente o Heapsort insere todos os elementos em uma árvore binária. Em seguida vai removendo um a um os elementos da árvore já ordenados. A inserção em árvore binária já contempa o ordenamento implícito.

    Quadro comparativo
    http://screencast.com/t/MjA0NzFlN

    Simulação
    http://www.schau-online.de/projects/heapsort/

  • Seleção em Árvore (HeapSort): Utiliza uma estrutura de árvore binária para
    a ordenação. A ordenação é realizada em duas fases:1ª fase:
    Monta-se uma árvore binária (heap) contendo todos os elementos do
    vetor de forma que o valor contido em qualquer nodo seja maior do que
    os valores de seus sucessores. A árvore binária é estruturada no próprio
    vetor da seguinte forma:
    a. sucessor à esquerda de i : 2i (se 2i < n)
    b. sucessor à direita de i : 2i + 1 (se 2i + 1 < n)
    Transformação da árvore num heap: é realizada do menor nível até a raiz,
    trocando-se cada nodo com o maior de seus sucessores imediatos.
    Repete-se este processo até cada nodo ser maior que seus sucessores
    imediatos.
    2ª fase:
    Após a formação do heap segue-se a fase de classificação propriamente
    dita, na qual o valor que está na raiz da árvore (maior valor contido na
    árvore) é colocado na sua posição correta, trocando-o com o elemento
    de maior índice da árvore (a árvore fica com 1 elemento a menos). Este
    novo elemento colocado na raiz pode violar a propriedade do heap, de
    modo que deve-se restaurar o heap novamente. Este procedimento é
    repetido até que a árvore fique com um único elemento.

  • Pessoal deêm uma conferida no vídeo do youtube, uma animação de como funciona o heap:
    http://www.youtube.com/watch?v=0VzYHiMXZq0&feature=related
  • b) A estrutura de dados que utiliza, chamada heap, pode ser interpretada como uma árvore binária.

  • A estrutura de dados heap, que é eficiente para a implementação do método de ordenação heapsort, consiste em uma árvore binária completa e sua implementação mais simples ocorre na forma de array.

     

    Letra B

  • Gabarito B

    Heapsort - utiliza uma estrutura de dados chamada heap, para ordenar os elementos à medida que os insere na estrutura. Assim, ao final das inserções, os elementos podem ser sucessivamente removidos da raiz da heap, na ordem desejada, lembrando-se sempre de manter a propriedade de max-heap.
    A heap pode ser representada como uma árvore ou como Vetor.

     

     

     

     

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

  • b-

    In computer science, a heap is a tree-based data structure which is an almost complete tree that satisfies the heap property: in a max heap, for any given node C, if P is a parent node of C, then the key (the value) of P is greater than or equal to the key of C. In a min heap, the key of P is less than or equal to the key of C. The node at the "top" of the heap (with no parents) is called the root node.

    https://en.wikipedia.org/wiki/Heap_(data_structure)


ID
76891
Banca
CESGRANRIO
Órgão
BACEN
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Uma fábrica de software foi contratada para desenvolver um produto de análise de riscos. Em determinada funcionalidade desse software, é necessário realizar a ordenação de um conjunto formado por muitos números inteiros. Que algoritmo de ordenação oferece melhor complexidade de tempo (Big O notation) no pior caso?

Alternativas
Comentários
  • Merge Sort possui eficiência O( n log n) em qualquer situação. Insert Sort possui no pior caso O ( n2)Buble sort possui no pior caso O (n)Quick sort possui no pior caso O (n2) eselection sort possui no pior caso O (n2)
  • O merge sort, ou ordenação por mistura, é um exemplo de algoritmo de ordenação do tipo dividir-para-conquistar.
    Sua idéia básica é que é muito fácil criar uma sequência ordenada a partir de duas outras também ordenadas.
    Para isso, ele divide a sequência original em pares de dados, ordena-as;
    depois as agrupa em sequências de quatro elementos, e assim por diante, até ter toda a sequência dividida em apenas duas partes.

    Os três passos úteis dos algoritmos dividir-para-conquistar, ou divide and conquer, que se aplicam ao merge sort são:
    1. Dividir: Dividir os dados em subsequências pequenas;
    2. Conquistar: Classificar as duas metades recursivamente aplicando o merge sort;
    3. Combinar: Juntar as duas metades em um único conjunto já classificado.

    Vantagens
    - Algorítimo de ordenação de simples implementação e fácil entendimento utilizando chamadas recursivas.

    Desvantagens
    - Alto consumo de memória, devido a série de chamadas recursivas.

    Fonte: http://pt.wikipedia.org/wiki/Merge_sort

  • Classificação por Intercalação: divide a tabela em dois ou mais segmentos, ordena estes segmentos e depois os intercalam, terminando, ao final, com um único segmento (toda a tabela) ordenado.

    O principal algoritmo desta família é o mergesort.

  • Classificação por Inserção: dividem a tabela em dois segmentos, sendo o 1o ordenado e o 2o não ordenado. A seguir, todos os elementos do 2o segmento vão, um a um, sendo inseridos no 1o segmento. Os principais algoritmos desta família são inserção direta com busca seqüencial, inserção direta com busca binária e incrementos decrescentes (shellsort).

    Classificação por Trocas: efetuam a classificação por comparação entre pares de chaves, trocando-as de posição caso estejam fora de ordem. Os principais algoritmos desta família são bubblesort, shakesort, combsort e quicksort.

  • A primeira colega está equivocada quanto ao pior caso do BubbleSort, que será sempre O(n2).
  • Dica simples, rápida e free! ;-)

     

                                 PIOR      MÉDIO     MELHOR
    BUBBLE SORT:         O(n2)        O(n2)          O(n)
    QUICK SORT:           O(n2)        O(nlogn)    O(nlogn)
    MERGE SORT:          O(nlogn)   O(nlogn)    O(nlogn)
    INSERCTION SORT:   O(n2)        O(n2)         O(n)
    HEAPSORT:              O(nlogn)   O(nlogn)    O(nlogn)
    SELECTION SORT:     O(n2)        O(n2)         O(n2) 

     

    Para você ter uma noção do que é pior, médio e melhor veja o gráfico "Big-O Complexity Chart" no site a seguir:

     

    http://bigocheatsheet.com/

     

    Go ahead!!!

  • Gabarito A

    MergeSort - divide para conquistar sucessivamente o vetor, e vai ordenando juntando os vetores. Geralmente se implementa recursivamente.
    Algoritmo de ordenação oferece melhor complexidade de tempo (Big O notation) nlogn no pior caso.
     

     

     

     

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

  • a-

    todos os outros sao n² no pior caso. merge sort e merge sort sao nlogn


ID
126466
Banca
ESAF
Órgão
Prefeitura de Natal - RN
Ano
2008
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Analise as seguintes afi rmações relacionadas a conceitos básicos de programação e de algoritmos:

I. Considerando entradas totalmente desordenadas, em um algoritmo de "Ordenação por Inserção", o tempo consumido no processamento para ordenar uma entrada de mil números é o mesmo que o tempo gasto para ordenar uma entrada de três números, quando executados em uma mesma máquina com arquitetura RISC.
II. Considerando o tempo de execução do pior caso de um algoritmo, na pesquisa de um banco de dados em busca de um determinado fragmento de informação, o pior caso do algoritmo de pesquisa ocorrerá, na maioria das vezes, quando a informação não estiver presente no banco de dados.
III. Um algoritmo é dito recursivo quando, para resolver um problema, ele chama internamente vários outros algoritmos duas ou mais vezes para lidar com subproblemas intimamente relacionados.
IV. Para qualquer número inteiro N e qualquer número inteiro positivo K, o valor N mod K é o resto do quociente N/K.

Indique a opção que contenha todas as afi rmações verdadeiras.

Alternativas
Comentários
  • I. Considerando entradas totalmente desordenadas, em um algoritmo de "Ordenação por Inserção", o tempo consumido no processamento para ordenar uma entrada de mil números é o mesmo que o tempo gasto para ordenar uma entrada de três números, quando executados em uma mesma máquina com arquitetura RISC.CERTO. A pegadinha aquí é a entrada de mil números. Na verdade a questão foi mal redigida. Deveria ser uma entrada de mil algarismos.II. Considerando o tempo de execução do pior caso de um algoritmo, na pesquisa de um banco de dados em busca de um determinado fragmento de informação, o pior caso do algoritmo de pesquisa ocorrerá, na maioria das vezes, quando a informação não estiver presente no banco de dados.ERRADO. O pior caso não é não encontrar, e sim quando a informação, ao longo do processo de busca, está na última localização checada pelo algorítmo.III. Um algoritmo é dito recursivo quando, para resolver um problema, ele chama internamente vários outros algoritmos duas ou mais vezes para lidar com subproblemas intimamente relacionados.CORRETO.IV. Para qualquer número inteiro N e qualquer número inteiro positivo K, o valor N mod K é o resto do quociente N/K.ERRADO. O Operador MOD retorna o resto da divisão inteira de N/K. A pegadinha da questão é quando diz qualquer númeri inteiro positivo K. Basta que ele seja inteiro.
  • Daniel considerando o seu comentário quanto ao item IV, qual seria o resultado de 20 mod 0? (Lembre-se, zero é número inteiro).Quanto ao item II, se eu tenho 2 algoritmos, A, B e,na execução de A eu chamo 3 vezes o algoritmo B, isto significa que A é recursivo? Você está certo disto?Entendo que seria mais ou menos o seguinte: "Um algoritmo é dito recursivo quando, para resolver um problema, ele chama A SI PRÓPRIO duas ou mais vezes para lidar com subproblemas intimamente relacionados.
  • Como eu pensei, o gabarito oficial mostra a alternativa E como sendo a correta.
  • Concordo. Algoritmo recursivo chama a SI PROPRIO. Resposta certa letra E.

ID
128368
Banca
FCC
Órgão
TRT - 15ª Região (SP)
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

São algoritmos de classificação por trocas apenas os métodos

Alternativas
Comentários
  • QuickSortO algoritmo QuickSort (desenvolvido em 1960 pelo cientista Charles Antony Richard Hoare) é de longe o algoritmo de ordenação mais usado e considerado pelo maior parte dos programadores como o melhor algoritmo dentro do género.Este algoritmo implementa uma solução para a ordenação de um array baseado no famoso lema da informática “dividir para conquistar”. O que basicamente o QuickSort faz é ir dividindo o array, através da selecção de um pivot (elemento de referência), e ordenando depois cada parte. BubbleSortO algoritmo BubbleSort é talvez o algoritmo mais simples de se perceber dentro do género. A sintaxe que este algoritmo apresenta não necessita de explicações exaustivas, visto recorrer a aspectos básicos de programação (ciclos for/while, comparação de diferentes elementos do array, incrementação de uma variável, etc.). O próprio funcionamento do BubbleSort é muito simples: por cada iteração do ciclo, o maior elemento do array (para um determinado intervalo de elementos desse mesmo array) é colocado no índice final, previamente estabelecido. Isto é conseguido à custa de sucessivas comparações de um elemento do array com o seu elemento seguinte.
  • QuickSortO algoritmo QuickSort (desenvolvido em 1960 pelo cientista Charles Antony Richard Hoare) é de longe o algoritmo de ordenação mais usado e considerado pelo maior parte dos programadores como o melhor algoritmo dentro do género.Este algoritmo implementa uma solução para a ordenação de um array baseado no famoso lema da informática “dividir para conquistar”. O que basicamente o QuickSort faz é ir dividindo o array, através da selecção de um pivot (elemento de referência), e ordenando depois cada parte. BubbleSortO algoritmo BubbleSort é talvez o algoritmo mais simples de se perceber dentro do género. A sintaxe que este algoritmo apresenta não necessita de explicações exaustivas, visto recorrer a aspectos básicos de programação (ciclos for/while, comparação de diferentes elementos do array, incrementação de uma variável, etc.). O próprio funcionamento do BubbleSort é muito simples: por cada iteração do ciclo, o maior elemento do array (para um determinado intervalo de elementos desse mesmo array) é colocado no índice final, previamente estabelecido. Isto é conseguido à custa de sucessivas comparações de um elemento do array com o seu elemento seguinte.
  • Realmente esse tema faz parte de "Noções de informática" ?:|
  • Alguém poderia me esclarer, pois entendo que esta questão está errada, pois tanto QuickSort quanto MergeSort são algoritmos de ordenação por particioamento utilizando Métodos Eficientes.

     

     

     

     

  •  Acho que a questão esta errada!!

    Não existe gabarito correto para a questão.

  • Os métodos de classificação por trocas caracterizam-se por efetuarem a classificação por comparação entre pares de chaves, trocando-as de posição caso estejam fora da ordem desejada.
    Exemplos: método da bolha(bubblesort), método da agitação(shakesort), método do pente(combsort) e método da partição e troca(quicksort)
  • Vai ai como decorei, depois de decorado é só entender como cada um funciona

    SITID:

    2 - Seleção: S - SH ( Seleção - Selectshort, Heapsort)
    3 - Inserção: I - BBS (Busca sequencial, busca binaria, shellsort)
    4  -Troca: T-BSCq ( Bubble, shake, comb, quick)
    1 - Interlacação: I - M (merge)
    1 - Distribuição: D - R (rodix)
  • Métodos de ordenação por troca:

    A bolha sacode o pente rápido.

    A Bolha (Bubblesort) Sacode(Shakesort) o Pente(combsort) Rápido(Quicksort)
  • Quick e Merge não são por Divisão e Conquista?

  • Troca: Bubble, Quick

    Inserção: Insertion, Shell

    Seleção: Selection, Heap

    Intercalação: Merge

  • Métodos de Ordenação
     

     Ordenação por troca
        Bubble Sort
        Quick Sort


     Ordenação por Inserção
        Inserção Direta


     Ordenação por Seleção
        Selection Sort
        Heap Sort


ID
143725
Banca
FIP
Órgão
Câmara Municipal de São José dos Campos - SP
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Assinale a alternativa incorreta:

Alternativas
Comentários
  • a) CORRETO. Heap Sort baseado no princípio de ordenação por seleção em arvore binaria. O método consiste em duas fases distintas: primeiro é feita a montagem de arvore binária (HEAP) contendo todos os elementos do vetor, de tal forma que o valor contido em qualquer nó seja maior do que os valores de seus sucessores e, numa segunda fase, o HEAP é usado para a seleção dos elementos na ordem desejada.

    b) CORRETO.  A recursividade é a definição de uma sub-rotina (função ou método) que pode invocar a si mesma.

    c) CORRETO.  

    As três maneiras mais usuais para percorrer os nós são:

    Caminhamento Pré-fixado

    1) visita a raiz

    2) percorre a sub-árvore da esquerda

    3) percorre a sub-árvore da direita

    Caminhamento In-fixado

    1) percorre a sub-árvore da esquerda

    2) visita a raiz

    3) percorre a sub-árvore da direita

    Caminhamento Pós-fixado

    1) percorre a sub-árvore da esquerda

    2) percorre a sub-árvore da direita

    3) visita a raiz

    d) CORRETO. Em ciência da computação, uma Fila Duplamente Terminada (frequentemente abreviada como DEQUE, do inglês Double Ended Queue) é um tipo de dado abstrato que generaliza uma fila, para a qual os elementos podem ser adicionados ou removidos da frente (cabeça) ou de trás (cauda).

    e) ERRADO. Um caminhamento completo sobre uma árvore binária produz uma sequência linear dos nós, de modo que cada nó da árvore passa a ter um nó seguinte ou um nó anterior, ou ambos, para uma dada forma de caminhamento.


ID
148054
Banca
FCC
Órgão
TRT - 16ª REGIÃO (MA)
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

São, respectivamente, um método de busca e um método de ordenação:

Alternativas
Comentários
  • a)BUSCA(pesquisa) / ORDENAÇÃO
    b)ORDENAÇÃO/ BUSCA(pesquisa)
    c)ORDENAÇÃO / ORDENAÇÃO
    d)ORDENAÇÃO/BUSCA(pesquisa)
    e)BUSCA(pesquisa) / BUSCA(pesquisa)
  • Busca Linear --> Dado uma lista (ordenada ou não) o elemento procurado é buscado do inicio ao fim sequencialmente até que seja encontrado; 

    int procura(char vetor[], int tamanho, char elementoProcurado) {     int i;     for (i = 0; i < tamanho; i++) {         if (vetor[i] == elementoProcurado) {             return i;         }     }      return -1; }


    Seleção direta ou SelectionSort --> Dado uma lista, seleciona-se sempre o menor valor e o posiciona no inicio da lista

    void selecaoDireta(int *vetor, int tamanho)
    {
       int i, j, menor, aux;
     
       for(i = 0; i < tamanho - 1; ++i)
       {
          menor = i;
          for(j = i + 1; j < tamanho; ++j)
          {
             if(vetor[j] < vetor[menor])
                menor = j;
          }
          aux = vetor[i];
          vetor[i] = vetor[menor];
          vetor[menor] = aux;
       }
    }
  • Quando começar com POR, é Ordenação.

  • Gabarito A

    Busca Linear - Dado uma lista (ordenada ou não) o elemento procurado é buscado do inicio ao fim sequencialmente até que seja encontrado.

     

    Seleção - encontra o menor elemento e o troca com a primeira posição, depois o segundo menor com a segunda posição, e assim sucessivamente (n-1 vezes). Número de com,parações (N2 − N)/2, sendo muito lento e inadequado para valores grandes de N.

     

     

     

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


ID
149926
Banca
CESPE / CEBRASPE
Órgão
ANAC
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O desempenho de um sistema computacional depende de vários
fatores, como volume de dados, capacidade do sistema e
adequação dos algoritmos, das estruturas de dados e dos objetos
que são utilizados para realizar as operações. Acerca desse
assunto, julgue os itens que se seguem.

A ordenação de um vetor contendo n elementos, utilizando-se algoritmo de bolha, realiza, no pior caso, mais que n/2 comparações.

Alternativas
Comentários
  •  No pior caso, são feitas 2n2 operações. 

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

  • Algoritmo de bolha (bubble sort) realiza:
    i) melhor caso (já ordenado): (n-1) comparações;
    ii) pior caso (lista invertida): n² comparações;
    Como ele afirma que são mais que n/2 e n² > n/2, questão correta.
  • Está questão realmente está certa? Pois n/2 entendo que é uma fração, e não uma exponenciação 

  • o correto mesmo deveria ser

     

    2017

    No pior caso, quando o vetor está inversamente ordenado, o algoritmo Bubble Sort executa n2 operações para a ordenação de um vetor de n elementos.

    certa

     


ID
154033
Banca
FCC
Órgão
MPE-RN
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

As estratégias de divisão e de conquista são utilizadas pelos algoritmos de ordenação

Alternativas
Comentários
  • Relação de algoritmos para memorizar:

    Ordenação por inserção: Insertion sort, Shell sort(melhoria do Insertion sort), Gnome sort(similar ao insertion sort e funcionamento do Bubble sort), 

    Ordenação por seleção: Selection sort, Heap sort

    Ordenação por comparação/troca: Bubble sort(ou ordenação por flutuação), Comb sort(melhoria do Bubble sort), Cocktail sort(Bubble em duas direções)

    Ordenação por divisão e conquista: Quick sort, Merge sort

     

    Outros: Radix sort, Counting sort, Bogosort(probabilístico), Bucket sort.
  • Classificação por intercalação
    Os métodos de classificação por intercalação dividem a tabela em dois
    ou mais segmentos, ordenam estes segmentos e depois os intercalam,
    terminando, ao final, com um único segmento (toda a tabela) ordenado.
    O principal algoritmo desta família é o MergeSort (ou Intercalação
    Simples).
    MergeSort (Intercalação Simples): A idéia por traz do MergeSort é bastante
    simples: divide-se a tabela em diversos segmentos menores para a seguir
    ordenar-se estes segmentos. Feito isto, estes segmentos são agrupados entre sí (intercalados) e este processo produz novos segmentos ordenados
    (maiores que os segmentos iniciais).
    O processo de agrupamento e ordenação dos segmentos (intercalação)
    continua até que se obtenha um único segmento que contenha toda a
    tabela e esteja totalmente ordenado.

  • Método da Troca e Partição (QuickSort): é o mais rápido entre os métodos
    apresentados até o momento, e também o mais utilizado. Esse método foi
    proposto por C. A. R. Hoare em 1962 e parte do princípio que é mais rápido
    classificar dois vetores com n/2 elementos cada um, do que um com n
    elementos (dividir um problema maior em dois menores).
    A parte mais delicada do método é o particionamento do vetor. O vetor é
    particionado em três segmentos:
    V[1], ..., V[i - 1]            V[i]             V[i + 1], ..., V[n]
    (segmento 1) (segmento 2) (segmento 3)
    A partição é realizada através da escolha arbitrária de um elemento (V[i])
    de modo que os elementos no segmento 1 sejam menores, e os elementos
    no segmento 3 sejam maiores do que o elemento escolhido V[i].
    Após a ordenação dos segmentos 1 e 3, tem-se o vetor original
    classificado. O processo de partição pode ser repetido para os segmentos
    1 e 3.
    Obs. Quando um segmento apresenta um número de elementos menor ou
    igual a M (um número pré-estabelecido), aplica-se um método simples de
    ordenação.

  • c)Quick sort e Merge sort

  • MERGE SORT

    Esse algoritmo segue o paradigma divisão e conquista.
     Divisão: Divide a sequência de n elementos que deve ser ordenada em subsequências de n/2 elementos cada uma.
     Conquista: Ordena as duas sequencias recursivamente. A recursão termina quando a sequência a ser ordenada tiver apenas um elemento.
     Combinação: Intercala as duas subsequências ordenadas para produzir a resposta ordenada.

     

    QUICK SORT

    O quick sort é um método de ordenação por troca que aplica o paradigma de divisão e conquista.
     Um elemento do arranjo será escolhido como pivô.
     Em seguida o arranjo é dividido em 2 subarranjos:
     Elementos menores ou iguais ao pivô.
     Elementos maiores que o pivô
     Os dois arranjos do passo anterior são ordenados recursivamente com o quick sort.

  • Gabarito C

    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).
     

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

     

     

     

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


ID
163060
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O quicksort é um algoritmo que funciona usando o paradigma de dividir e conquistar, usando uma rotina de particionamento que divide o vetor de estruturas em dois pedaços em torno de um pivô. O pedaço da esquerda só contém elementos com chaves menores ou iguais que o elemento corrente e o pedaço da direita, só elementos com chaves maiores que o elemento corrente. O algoritmo procede, então, para o subproblema de ordenar cada um dos pedaços e seu desempenho total é um dos mais eficientes para ordenação de estruturas de dados. Qual das seguintes descrições representa uma correta característica do algoritmo quicksort?

Alternativas
Comentários
  • Método da Troca e Partição (QuickSort): é o mais rápido entre os métodos
    apresentados até o momento, e também o mais utilizado. Esse método foi
    proposto por C. A. R. Hoare em 1962 e parte do princípio que é mais rápido
    classificar dois vetores com n/2 elementos cada um, do que um com n
    elementos (dividir um problema maior em dois menores).
    A parte mais delicada do método é o particionamento do vetor. O vetor é
    particionado em três segmentos:
    V[1], ..., V[i - 1]           V[i]                V[i + 1], ..., V[n]
    (segmento 1)   (segmento 2)   (segmento 3)
    A partição é realizada através da escolha arbitrária de um elemento (V[i])
    de modo que os elementos no segmento 1 sejam menores, e os elementos
    no segmento 3 sejam maiores do que o elemento escolhido V[i].
    Após a ordenação dos segmentos 1 e 3, tem-se o vetor original
    classificado. O processo de partição pode ser repetido para os segmentos
    1 e 3.
    Obs. Quando um segmento apresenta um número de elementos menor ou
    igual a M (um número pré-estabelecido), aplica-se um método simples de
    ordenação.

    • Complexidade de tempo: θ(n lg2 n) no melhor caso e no caso médio e θ(n2) no pior caso;
    • Complexidade de espaço: θ(lg2 n) no melhor caso e no caso médio e θ(lg2 n) no pior caso. R. Sedgewick desenvolveu uma versão do Quicksort com partição recursão de cauda que tem complexidade θ(n2) no pior caso.
  • Essa questão deveria ter sido anulada, pois apresenta erro de notação.

    teta(n): caso médio
    ômega(n): pior caso
    O(n): pior caso

    Como a questão utiliza teta(n) para falar de pior caso, há erro de notação. Alguém comenta?
  • Olá galera, dica rápida, simples e free!!!!

     

                          PIOR     MÉDIO     MELHOR
    QUICK SORT:      O(n2)      O(nlogn)      O(nlogn)

     

    A técnica de particionamento é uma arma poderosa que o quicksort possui.

     

    Para maiores detalhes: https://pt.wikipedia.org/wiki/Quicksort

     

     

    Go ahead!!!

  • Gabarito C

    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 !

  • c-

    O método Quicksort é uma aplicação do princípio divide and conquer. Para a ordenação, inicialmente o vetor é dividido em uma sublista da direita e uma da esquerda, de modo que todo elemento da sublista da esquerda seja menor que o da direita. Em seguida, ordenam-se, pelo mesmo processo, as duas sublistas de forma recursiva. o pior caso é n². normal é nlogn


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

Em relação à classificação de dados e tipos abstratos de dados
(TADs), julgue os itens subsequentes.

A classificação interna por inserção é um método que realiza a ordenação de um vetor por meio da inserção de cada elemento em sua posição correta dentro de um subvetor classificado.

Alternativas
Comentários
  • Essa questão se refere ao INSERTION SORT.

    Este método de ordenação percorre o vetor original e vai montando um vetor secundário de forma ordenada.


ID
230032
Banca
FUNCAB
Órgão
PRODAM-AM
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A técnica que é utilizada para obtenção de um novo arquivo único, a partir de dois ou mais arquivos que contenham registros de mesmo tipo, estando esses arquivos classificados segundo um mesmo critério pela mesma chave, é conhecida como:

Alternativas
Comentários
  • A partir do SQL Server 2008 podemos utilizar um conceito de mesclagem muito útil. Trata-se do comando Merge, que permite trabalhar com Update, Insert e Delete numa única instrução. Dessa forma, a partir de uma tabela de origem, “dizemos” ao SQL Server o que ele deverá fazer quando encontrar e quando não encontrar registros correspondentes entre esta tabela (de origem) e a tabela de destino.

    Isto é muito últil quando temos uma tabela com vários registros (provenientes de uma importação, por exemplo) e precisamos “ajeitar” a tabela definitiva, que está no banco, de acordo com estas informações. Ou seja, incluir os registros inexistentes, atualizar os que já existem e, talvez, remover os registros que estão na base e que não se encontram nesta “nova tabela”.

    Fonte: http://robersonferreira.com.br/merge_parte1/

    Bons Estudos !


ID
238297
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 eficácia do método de ordenação rápida (quicksort) depende da escolha do pivô mais adequado ao conjunto de dados que se deseja ordenar. A situação ótima ocorre quando o pivô escolhido é igual ao valor máximo ou ao valor mínimo do conjunto de dados.

Alternativas
Comentários
  • O quick sort executa o algoritmo escolhendo o método do melhor pivô. Se todo o pivô dividir a lista, aproximadamente, ao meio, a ordenação corre numa complexidade de: O(N * log(N) ). Este método é eficiente se a escolha do pivô um elemento cujo valor seja médio relativamente aos restantes

  • A  eficácia do método de ordenação rápida (quicksort) depende mais dos elementos do que do pivô. 
  •   O Quick Sort é um dos método mais rápidos de ordenação, apesar de às vezes partições desequilibradas poderem conduzir a uma ordenação lenta. Esse método de ordenação utiliza a técnica divide and conquer (dividir o problema inicial em dois subproblemas e resolver um problema menor utilizando a recursividade)
     
                Este método baseia-se na divisão da tabela em duas sub-tabelas, dependendo de um elemento chamado pivô, normalmente o 1º elemento da tabela. Uma das sub-tabelas contém os elementos menores que o pivô enquanto a outra contém os maiores. O pivô é colocado entre ambas, ficando na posição correcta. As duas sub-tabelas são ordenadas de forma idêntica, até que se chegue à tabela com um só elemento.
     
    Complexidade: caso médio O(N * log N)

    http://w3.ualg.pt/~hshah/ped/Aula%2014/Quick_final.htmlPS. o erro da questão é afirmar que é o valor max ou min, na verdade é o médio
  • Prezados,

    O algoritmo quicksort se baseia no paradigma de divisão e conquista, ordenando uma sequencia S de forma recursiva. A ideia principal é escolher um elemento de S ( chamado pivô ) e se cria 3 outras sequencias , L ( com todos os elementos menores que o pivô ) , E ( com todos os elementos iguais ao pivô ) , e G ( com todos os elementos maiores que o pivô ) , dai se ordena essas listas recursivamente, coloca-se de volta os elementos em S inserindo primeiro os elementos de L , em seguida os de E e por fim os de G. 
    Vemos que a escolha do pivô é determinante para a performance do algoritmo , e se o pivô escolhido for um valor das pontas ( valor máximo ou mínimo ) , o algoritmo terá o seu pior cenário.

    Portanto a questão está errada.

  • tem que decorar as complexidades de todos

     

    2017

    O algoritmo QuickSort usa uma técnica conhecida por divisão e conquista, onde problemas complexos são reduzidos em problemas menores para se tentar chegar a uma solução. A complexidade média deste algoritmo em sua implementação padrão e a complexidade de pior caso são, respectivamente,

     a) O(n-1) e Ο(n³).

     b) Ο(n²) e Ο(n log n²).

     c) O(n²) e O(n³).

     d) Ο(n) e Ο(n²).

     e) Ο(n log n) e Ο(n²).

     

  • Gabarito Errado

    QUICKSORT ---> complexidade no pior caso n2 e complexidade no melhor caso nlogn.

     

     

     

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

  • e-

    The best case for the algorithm occurs when all elements are equal (or are chosen from a small set of k ≪ n elements). In the case of all equal elements, the modified quicksort will perform only two recursive calls on empty subarrays and thus finish in linear time (assuming the partition subroutine takes no longer than linear time).

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


ID
238300
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 estrutura de dados heap, que é eficiente para a implementação do método de ordenação heapsort, consiste em uma árvore binária completa e sua implementação mais simples ocorre na forma de array.

Alternativas
Comentários
  • O heapsort utiliza uma estrutura de dados chamada heap (monte), para ordenar os elementos à medida que os insere na estrutura. Assim, ao final das inserções, os elementos podem ser sucessivamente removidos da raiz da heap, na ordem desejada, lembrando-se sempre de manter a propriedade de max-heap.

    A heap pode ser representada como uma árvore (uma árvore binária com propriedades especiais[2]) ou como um vetor. Para uma ordenação crescente, deve ser construído um heap máximo (o maior elemento fica na raiz). Para uma ordenação decrescente, deve ser construído um heap mínimo (o menor elemento fica na raiz).

    Referência: http://pt.wikipedia.org/wiki/Heapsort

  • Minha dúvida está em:

    "...consiste em uma árvore binária completa..."

    pelo que vi, a definição de arvore completa depende de autor.
    alguns dizem que completa deve ser estritamente binária (cada nó tem 0 ou 2 filhos, não pode ter 1), e nesse caso, heap não é completa...
  • Fiquei com a mesma dúvida da laura.
  • Pessoal, vejam a relação entre Heapsort e Árvore Binária:

    http://www.das.ufsc.br/~camponog/Disciplinas/DAS-9003/slides_CLR/l8-trees-heaps.pdf
  • Passando as informações do link que o  Rogério enviou:

     

    Heaps
    - Um heap (binário) é uma estrutura de dados que pode ser vista como uma  arvore binária completa.
    - Cada nó da árvore corresponde a um elemento do vetor que armazena o valor do nó.
    - A árvore é completa em todos os níveis com exceção do nível mais baixo, o qual é completado da esquerda para a direita.
  • Prezados,

    Segundo André Backes, em seu livo Estrutura de dados descomplicada, o algoritmo heapsort, também conhecido como ordenação por heap, é um algoritmo de ordenação bastante sofisticado e que compete em desempenho com o quicksort. A ideia deste algoritmo é transformar o array de dados em uma estrutura do tipo heap, isto é , uma árvore binária completa. Essa estrutura permite a recuperação e remoção eficiente do elemento de maior valor do array. Desse modo podemos repetidamente "remover" o maior elemento da heap, construindo assim o array ordenado de trás pra frente.

    Portanto a questão está correta.

  • acho que era pra ser quase completa, não?


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
273337
Banca
CESPE / CEBRASPE
Órgão
FUB
Ano
2011
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A respeito dos princípios de programação, julgue os seguintes itens.

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.

Alternativas
Comentários
  • Leia: http://pt.wikipedia.org/wiki/Ordena%C3%A7%C3%A3o_est%C3%A1vel
  • Um algoritmo de ordenação é estável se preserva a ordem de registros de chaves iguais. Ou seja, se tais registros aparecem na sequencia ordenada (resultado da ordenação) na mesma ordem em que estão na sequencia inicial (entrada desordenada).

    Alguns algoritmos estáveis:
    • Bubble
    • Cocktail
    • Insertion
    • Merge
    • Bucket
    • Counting

    Alguns algoritmos instáveis:
    • Selection
    • Quick
    • Heap
    • Shell
  • Decoreba:

     

    - Métodos Estáveis: Bubble, Insertion e Merge; -BIM - "O que for diferente desses são os instáveis"

    - Instáveis: Selection, Quick, Heap e Shell. 

  • Gabarito Certo

    algoritmos estáveis - MIB, homens de preto - merge, insert e bubble sort

    algoritmos instáveis - SSH Q, segurança - select, shell, heap e quick sort

     

     

     

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

  • Um algoritmo de ordenação é estável (= stable) se não altera a posição relativa dos elementos que têm o mesmo valor. Digamos, por exemplo, que um vetor de números do tipo double é ordenado com base na parte inteira dos números, ignorando a parte fracionária. Se o algoritmo de ordenação for estável, os números que têm a mesma parte inteira continuarão na mesma ordem em que estavam originalmente. Na seguinte figura, a primeira linha mostra o vetor original e a segunda, o vetor ordenado:


    44.0 55.1 55.2 66.0 22.9 11.022.5 33.0

    11.0 22.9 22.5 33.0 44.0 55.1 55.2 66.0 Observe que 22.9 e 22.5 permaneceram na mesma ordem que estavam antes da ordenação, o mesmo para 55.1 e 55.2


    Eis outro exemplo. Digamos que cada elemento do vetor é um struct com dois campos: o primeiro contém o nome de uma pessoa e o segundo contém o ano de nascimento da pessoa. Suponha que o vetor original tem dois João da Silva, primeiro o que nasceu em 1990 e depois o que nasceu em 1995. Se o vetor for ordenado por um algoritmo estável com base no primeiro campo, os dois João da Silva continuarão na mesma ordem relativa: primeiro o de 1990 e depois o de 1995.


ID
311833
Banca
FCC
Órgão
TRT - 14ª Região (RO e AC)
Ano
2011
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

NÃO se trata de um método de ordenação (algoritmo):

Alternativas
Comentários
  • Os métodos de ordenação são: Insertion Sort, Selecion Sort, Bubble Sort, Comb Sort, Quick Sort, Merge Sort, HeapSort, Shell sort, Radix Sort, Gnome Sort, Count Sort, Bogo Sort,, Bucket Sort, Cocktail Sort e Tim Sort. Sabendo disso, temos que:
     
    A) É o Insertion Sort.
    B) É o Seletion Sort.
    C) É o Shell.
    D) Direta em cadeia é um método de pesquisa e não de ordenação.
    E) É o Quick Sort. 
     
    Também é bom saber que os principais métodos de busca são: Linear, Binária, Em Tabelas e Direta Em Cadeias. Atualmente os dois métodos mais eficientes de busca em cadeias correspondem aos conhecidos métodos de Hnuth-Norris-Pratt (KMP) e o método Boyer-Moore.
  • Apenas complementando o comentário acima:
    A letra E também pode ser o mergesort
  • D) direta em cadeia é um método de pesquisa e não de ordenação.

  • Letra D - direta em cadeias.


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

São métodos ou algoritmos conhecidos de ordenação de dados por troca:

Alternativas
Comentários
  •     a) ordenação shell e hashing. (Oredenação shell não existe; hashing é um algoritmo que gera uma chave única dada uma entrada, muito utilizado para indexação)

        b) busca por ordenação e ordenação shell. (busca por ordenação - não sei exatamente o que o examinador quis dizer por busca por ordenação)

        c) quicksort e hashing. (quicksort - algoritmo de ordenação com complexidade de pior caso O(n2) e melhor caso O(n log2 n))

        d) hashing e bubble sort. (bubble sort - algoritmo de ordenação com complexidade de pior e melhor caso o(n2))

        e) bubble sort e quicksort.
  • Ops, não podia deixar de comentar. Eu estudei ordenação Shell na faculdade, afirmar que não existe é algo perigoso, pode confundir os estudantes.

    A ordenação Shell  é o Shell sort, veja abaixo:

    A ordenação Shell utiliza a quebra sucessiva da sequência a ser ordenada e implementa a ordenação por inserção na sequência obtida. Por ser um método de complexidade O(n^2 ) não é aconselhável a sua implementação para sequências grandes, mas possui uma boa eficiência para as pequenas e medianas.

    http://pt.wikipedia.org/wiki/Shell_sort
  • um link aqui para o assunto acredito que irá explicar bastante...

    http://wiki.icmc.usp.br/images/b/b3/SCC501Cap4.pdf

    resumindo:

    ordenação shell - do tipo shell

    hashing. do tipo espalhamento

    busca por ordenação ??? ( não achei nada sobre isso... parece invenção)

    quicksort - é de troca (troca por partição)

    bubble sort - troca.



  • Quicksort não é por Divisão e Conquista?

  •       

    Lera e -> bubble sort e quicksort.

  • Gabarito E

    BubbleSort - pouco eficiente para ordenar grandes quantidades de informações. Compara posições adjacentes e vai ordenando o vetor. Elemento da posição i é comparado com o elemento da posição i + 1.

     

    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 !


ID
425128
Banca
COPEVE-UFAL
Órgão
UFAL
Ano
2011
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

tempo de execução do pior caso do algoritmo de ordenação Quicksort é:

Alternativas
Comentários
  • a complexidade de pior caso do algoritmo quicksort é O(n2).
    Já o tempo de execução não há como saber, depende de uma série de fatores, entre eles:
    • Tamanho da entrada
    • Arquitetura na qual o algoritmo é executado
    • Concorrência com outros processos
    • etc...
  • A complexidade no caso médio (Teta) para o QuickSort é n log n.
    Para o pior caso é O(n^2).

  • O quick sort têm tempo médio n log n, mas em casos específicos(pior caso) leva n^2.

    Apesar de ser lento apenas em caso específicos, o caso específico não deixa de ser comum. Em implementações comuns o algoritmo se comporta mal justamente quando uma lista já está ordenada, algo que não é incomum.Apesar de existirem diversos algoritmos com temo n log n, o quicksort é um dos mais velozes no caso médio, por isso ainda é muito utilizado.

    Imagino que a questão foi anulada por falar em tempo de execução ao invés de complexidade. Um problema que talvez fosse ignorado por muitas bancas.

     

     


ID
449917
Banca
FGV
Órgão
MEC
Ano
2009
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Observe o trecho de pseudocódigo abaixo para ordenar 9 números, em ordem crescente.
algoritmo SORT;
tipo
VETOR = array[1..9] numérico;
variáveis
T : VETOR;
K, X, B : numérico;
Início {corpo principal do programa}
{instruções que realizam a leitura}
{dos 9 números desordenados}
{classificação dos 9 números}
{em ordem crescente}
BLOCO-INSTRUÇÕES
{impressão dos 9 números}
{em ordem crescente}
fim-do-algoritmo.

As instruções que devem substituir a referência BLOCO-INSTRUÇÕES estão indicadas na seguinte opção:

Alternativas

ID
459298
Banca
FCC
Órgão
INFRAERO
Ano
2011
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O método de ordenação QuickSort (ordenação rápida) é um método sofisticado de ordenação de vetores que

Alternativas
Comentários
  • a) INSERTION SORT: considera em cada passo somente um único elemento sucessor da seqüência fonte e todos os elementos do vetor destino para encontrar o ponto correto de inserção

    b) SHELL SORT:ordena todos os elementos que estiverem a intervalos de 4 posições entre si na sequência corrente.

    c) SHELL SORT: é baseado nos princípios de ordenação por inserção direta através de incrementos decrescentes.

    d) QUICK SORT: é baseado no fato de que as permutações devem ser preferencialmente empregadas para pares de elementos que guardem entre si distâncias grandes, com a finalidade de se conseguir uma eficiência maior.

    e) SELECTION SORT: é baseado nos princípios de ordenação por seleção direta que consiste na seleção repetitiva da menor dentre as chaves de n elementos, e depois dentre os n-1 elementos restantes, e assim por diante.
  • Gabarito D

    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 !

  • O método Quicksort é do tipo divide and conquer. Para a ordenação, o vetor é dividido em uma sublista da direita e esquerda, de modo que todo elemento da sublista da esquerda seja menor que o da direita. Em seguida, ordenam-se, pelo mesmo processo, as duas sublistas de forma recursiva.


ID
464170
Banca
CESGRANRIO
Órgão
Transpetro
Ano
2011
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O algoritmo Bubble Sort é popular, mesmo que ineficiente. Usando-se esse algoritmo para ordenar uma tabela, alocada sequencialmente, em ordem crescente contendo os números [5, 4, 1, 3, 2] serão feitas:

Alternativas
Comentários
  • Estrutura do Algoritmo

    vetor = { 5, 4, 1, 3, 2 }


    para i de 1 até 5
            para j de i+1 até 5
                se ( vetor[i] > vetor[j] ) então
                    troque ( vetor[i], vetor[j] )

    Algorito em tempo de execução

    para i=1
    5 > 4 (troca), 4 > 1 (troca),  1 > 3, 1 > 2
    vetor = { 1, 5, 4, 3, 2 }

    para i=2
    5>4(troca), 4>3(troca),3>2(troca)
    vetor = { 1,2,5,4,3)

    para i=3
    5>4(troca), 4>3(troca)
    vetor = {1,2,3,5,4}
    para i=4
    5>4(troca)
    vetor = {1,2,3,4,5}

     10 comparações e 8 trocas
  • Comparações x trocas:
    5 4 1 3 2 (troca)
    4 5 1 3 2 (troca)
    4 1 5 3 2 (troca)
    1 4 5 3 2 (troca)
    1 4 3 5 2 (troca)
    1 3 4 5 2 (Não Troca)
    1 3 4 5 2 (troca)
    1 3 4 2 5 (troca)
    1 3 2 4 5 (troca)
    1 2 3 4 5 (Não Troca)
  • [5, 4, 1, 3, 2] - Array Original

    [5, 4, 1, 3, 2] - Compara 1 e [4, 5, 1, 3, 2] - Troca 1
    [4, 5, 1, 3, 2] - Compara 2 e [4, 1, 5, 3, 2] - Troca 2
    [4, 1, 5, 3, 2] - Compara 3 e [4, 1, 3, 5, 2] - Troca 3
    [4, 1, 3, 5, 2] - Compara 4 e [4, 1, 3, 2, 5] - Troca 4
    [4, 1, 3, 2, 5] - Compara 5 e [1, 4, 3, 2, 5] - Troca 5
    [1, 4, 3, 2, 5] - Compara 6 e [1, 3, 4, 2, 5] - Troca 6
    [1, 3, 4, 2, 5] - Compara 7 e [1, 3, 2, 4, 5] - Troca 7
    [1, 3, 2, 4, 5] - Compara 8 e Não troca - Troca 7
    [1, 3, 2, 4, 5] - Compara 9 e [1, 2, 3, 4, 5] - Troca 8
    [1, 2, 3, 4, 5] - Compara 10 e Não troca - Troca 8

    Fim

    Para mais estudos: http://www.youtube.com/watch?v=P00xJgWzz2c
  • Bubble sorte, ordenação por flutuação, é um algoritmo de ordenação dos mais simples. Percorre o vetor diversas vezes, a cada passagem fazendo flutuar para o topo o maior elemento da sequência. No melhor caso executa n2 operações relevantes, onde n representa o número de elementos do vetor. No pior caso também são feitas n2 operações. A complexidade é de ordem quadrática e por isso ele não é recomendado para programas que precisem de velocidade e operem com quantidade elevada de dados.
  • [5, 4, 1, 3, 2] - Array Original

    A forma correta que o algoritmo funciona é a seguinte:

    [5, 4, 1, 3, 2] - Compara 1 e [4, 5, 1, 3, 2] - Troca 1

    [4, 5, 1, 3, 2] - Compara 2 e [1, 5, 4, 3, 2] - Troca 2

    [1, 5, 4, 3, 2] - Compara 3 e não troca

    [1, 5, 4, 3, 2] - Compara 4 e não troca

    [1, 5, 4, 3, 2] - Compara 5 e [1, 4, 5, 3, 2] - Troca 3

    [1, 4, 5, 3, 2] - Compara 6 e [1, 3, 5, 4, 2] - Troca 4

    [1, 3, 5, 4, 2] - Compara 7 e [1, 2, 5, 4, 3] - Troca 5

    [1, 2, 5, 4, 3] - Compara 8 e [1, 2, 4, 5, 3] - Troca 6

    [1, 2, 4, 5, 3] - Compara 9 e [1, 2, 3, 5, 4] - Troca 7

    [1, 2, 3, 5, 4] - Compara 10 e [1, 2, 3, 4, 5] - Troca 8
  • Para mim a resposta correta seria:

    4,5,1,3,2 (1 troca e 1 comparação)

    4,1,5,3,2 (2 troca e 2 comparação)

    4,1,5,2,3 (3 troca e 3 comparação)

    1,4, 5,2,3 (4 troca e 4 comparação)

    1,4,5,2,3 (4 troca e 5 comparações)

    1,4,2,5,3 (5 troca e 6 comparação)

    1,4,2,3,5 ( 6 troca e 7 comparação)

    1,4,2,3,5 (6 troca e 8 comparação)

    1,2,4,3,5 (7 troca e 9 comparação)

    1,2,3,4,5 (8 troca e 10 comparação)

    1,2,3,4,5 (8 troca e 11 comparação)

    1,2,3,4,5 (8 troca e 12 comparação)

    1,2,3,4,5 (8 troca e 13 comparação)

    1,2,3,4,5 (8 troca e 14 comparação)

    O algoritmo na (8 troca e 10 comparação) não sabe se os anteriores estão ordenados, desta forma, ele precisará percorrer a lista mais uma vez.


  • a-

    inicio: 5,4,1,3,2

    4,5,1,3,2

    4,1,5,3,2

    4,1,3,5,2

    4,1,3,2,5

    1,4,3,2,5

    1,3,4,2,5

    1,3,2,4,5

    1,2,3,4,5

    _________________________________________________________________________________________________________

    o n° comparacoes segue formato round-robin: (n)²-n/2. 4 itens: 6 comp. 5 itens: 10 comp


ID
606163
Banca
CESGRANRIO
Órgão
FINEP
Ano
2011
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considerando-se a análise assintótica (Notação Big O), qual é a complexidade do caso médio do algoritmo de ordenação chamado de Ordenação por Inserção?

Alternativas
Comentários
  • Questão classificada erroneamente.
  • Detalhes: http://pt.wikipedia.org/wiki/Insertion_sort

    Complexidade do caso médio do Insertion Sort (algoritmo de Ordenação por Inserção = O(n²)

    Insertion sort, ou ordenação por inserção, é um simples algoritmo de ordenação, eficiente quando aplicado a um pequeno número de elementos. Em termos gerais, ele percorre um vetor de elementos da esquerda para a direita e à medida que avança vai deixando os elementos mais à esquerda ordenados. O algoritmo de inserção funciona da mesma maneira com que muitas pessoas ordenam cartas em um jogo de baralho como o pôquer.
  • A complexidade de tempo do caso médio é igual a do pior caso. Lembrando que a Complexidade temporal de um algoritmo se dá em função do tamanho (n) da entrada. 

    Já a Ordenação por Partição é O(n log n). 


  • Questão errada. Cabe recurso.

  • Gabarito A

    INSERÇÃO DIRETA ---> complexidade pior n2 e complexidade melhor n.

     

     

     

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

  • algo____________best___________average___________worst

    Quicksort   Ω(n log(n))___________   Θ(n log(n))___________   O(n^2)   

    Mergesort   Ω(n log(n)) ___________  Θ(n log(n)) ___________  O(n log(n))   

    Timsort   Ω(n) ___________  Θ(n log(n)) ___________  O(n log(n))   

    Heapsort   Ω(n log(n))___________   Θ(n log(n)) ___________  O(n log(n))

    Bubble Sort   Ω(n) ___________  Θ(n^2)  ___________ O(n^2)

    Insertion Sort   Ω(n) ___________  Θ(n^2)  ___________ O(n^2)

    Selection Sort   Ω(n^2) ___________  Θ(n^2)  ___________ O(n^2)

    Tree Sort   Ω(n log(n))  ___________ Θ(n log(n))  ___________ O(n^2)

    Shell Sort   Ω(n log(n))  ___________ Θ(n(log(n))^2)  ___________ O(n(log(n))^2)

    Bucket Sort   Ω(n+k)  ___________ Θ(n+k)  ___________ O(n^2)

    Radix Sort   Ω(nk)  ___________ Θ(nk)  ___________ O(nk)

    Counting Sort   Ω(n+k)  ___________ Θ(n+k)  ___________ O(n+k)

    Cubesort   Ω(n)   ___________Θ(n log(n))  ___________ O(n log(n))   


ID
617005
Banca
FCC
Órgão
MPE-SE
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Em uma árvore ordenada, um elemento pode ser eliminado colocando-se em seu lugar o

I. maior elemento da sub-árvore à esquerda do elemento a eliminar.
II. menor elemento da sub-árvore à direita do elemento a eliminar.
III. elemento vazio, da sub-árvore à esquerda do elemento a eliminar.
IV. elemento vazio, da sub-árvore à direita do elemento a eliminar.

É correto o que se afirma APENAS em

Alternativas
Comentários
  • Sinteticamente,

    I. Correta.

    II. Correta.

    Para facilitar devemos usar o exemplo de uma subárvore qualquer (Nó esquerdo: 3, raíz:4, nó direito 5) Se eliminarmos a raiz o nó que assumirá o lugar será o de valor 4, ou seja, o maior da esquerda; Se eliminarmos a raiz (4) o nó que poderá assumir é o menor da direita, ou seja, o nó de valor 5;

    III. Incorreta;

    IV. Incorreta;

    Não faz sentido as alternativas....colocar no lugar, um elemento vazio? Ou seja, substituir o nada com nada? Enfim, não entendi!

    GABARITO ALTERNATIVA B

  • Quando um nó é removido em uma árvore binária de busca, deve assumir o seu lugar o menor elemento a sua direita ou o maior a sua esquerda.

    Alternativa: B


ID
638152
Banca
FUMARC
Órgão
PRODEMGE
Ano
2011
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

São algoritmos de ordenação, cuja complexidade é O(n log n), EXCETO:

Alternativas
Comentários
  • O pior caso do shell sort é O(n log n) e não O(1) como o ML escreveu acima.
  • Para o caso médio, temos que a complexidade do Radix Sort é dada por Q((b/r)(n+2r)), onde n é a quantidade de números, b é a quantidade de dígitos e r é um inteiro positivo qualquer, tal que r <= b.
     
  • Cabe anulação nesta questão. Os únicos algorítmos que possuem complexidade de O(n log n) em todos os casos são Heapsort e MergeSort.
     
    QUICKSORT:
    • Melhor caso: O(N log N)
    • Caso Médio: O(N log N)
    • Pior caso: O(N^2) – ARQUIVO JÁ CLASSIFICADO
     
    HEAPSORT:
    • Melhor caso: O(N log N)
    • Caso Médio: O(N log N)
    • Pior caso: O(N log N) 
     
    SHELLSORT (Refinamento do Insertionsort)
    • Melhor caso: O(N)
    • Caso Médio: Depende da sequência do GAP.
    • Pior caso: O(N log^2 N)
  • O Radixsort é um método de ordenação por contagem que é executado em tempo linear O(n).
  • O radix sort LSD opera na notação Big O, em O(nk), onde "n" é o número de chaves, e "k" é o comprimento médio da chave. É possível garantir esse desempenho para chaves com comprimento variável agrupando todas as chaves que tem o mesmo comprimento e ordenando separadamente cada grupo de chaves, do mais curto para o mais comprido, de modo a evitar o processamento de uma lista inteira de chaves em cada passo da ordenação.

    Em muitas aplicações em que é necessário velocidade, o radix sort melhora as ordenações por comparação, como heapsort e o mergesort, que necessitam de Ω(n · log n) comparações, onde "n" é o número de itens a serem ordenados. Em compensação, algoritmos de ordenação baseados em comparações oferecem flexibilidade por serem aptos a ordenar de outras formas que não a lexicográfica. No entanto, essa habilidade é de pouca importância em várias aplicações práticas.

  • Acho que essa questão cabe anular sim.

    Olha o estudo detalhado de como é calculado a complexidade dos algoritmos.

    http://www.decom.ufop.br/menotti/aedI082/tps/tp3-sol1.pdf

  • Curiosidade: RadixSort é o método de ordenação usado pelos Correios para ordenar as cartas por CEP.

  • Não tem nada de anulação nessa questão!
    Complexidade  = Inserção  O(n 2 );  | Seleção  O(n 2 );  |  Shellsort  O(n log n);  |  Quicksort  O(n log n);  | Heapsort  O(n log n).
               Apesar de não se conhecer analiticamente o comportamento do Shellsort, ele é considerado um método eficiente).

          radixsort
    O algoritmo de ordenação radix foi originalmente usado para ordenar cartões perfurados.

    Complexidade de Tempo: O(nk).

    Complexidade de espaço: O(n + s).

    fonte: https://pt.wikipedia.org/wiki/Radix_sort




  • LETRA  D

    Só lembrar que o RADIX SORT é o diferentão da galera. Ele apresenta K(Tamanho da String) e S(Tamanho do Alfabeto)

    Complexidade de Tempo: O(nk)
    Complexidade de espaço: O(n + s)

  • d-

    o radix sort é usadso para ordenar algortimos identificados por um chave unica, sendo cada chave é um string ou um nome consoante a ordem lexicografica.

    https://www.bigocheatsheet.com/


ID
666142
Banca
FUNCAB
Órgão
MPE-RO
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O algoritmo abaixo é um algoritmo de ordenação:

proc insertionSort(int[] arr)
      int tamanho <- tam(arr);
      int i, j, aux;
     para i de 1 incr 1 até tamanho-1 faça
           aux <- arr[i];
          para j de i-1 incr -1 até (j >= 0 e aux < arr[j]) faça
                       arr[j+1] <- arr[j];
arr[j+1] <- aux; 

Alternativas
Comentários
  • Ordenação por Inserção

    Método preferido dos jogadores de cartas. A cada momento existem duas partes na lista: uma ordenada (destino) e outra não ordenada (fonte). Inicialmente a lista destino tem apenas o primeiro elemento, e a fonte os demais elementos. Em cada passo a partir de i=2, seleciona-se o i-ésimo item da lista fonte. Deve-se colocá-lo no lugar apropriado na lista destino, de acordo com o critério de ordenação. 

  • Gabarito A

    A questão se intrega na primeira linha vejam:

    proc insertionSort(int[] arr)

     

    Inserção - método preferido dos jogadores de cartas. Divide o vetor em 2 (classificado e não classificado).
    Tem o maior (complexidade O(n²)) número de trocas quando o vetor está ordenado de forma inversa à ordem do procedimento.
     

     

     

     

     

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


ID
704332
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.

O heapsort é um algoritmo de ordenação em que a quantidade de elementos armazenada fora do arranjo de entrada é constante durante toda a sua execução.

Alternativas
Comentários
  • O heapsort utiliza uma estrutura de dados chamada heap, para ordenar os elementos a medida que os insere na estrutura. Assim, ao final das inserções, os elementos podem ser sucessivamente removidos da raiz da heap, na ordem desejada, lembrando-se sempre de manter a propriedade de max-heap.

    A heap pode ser representada como uma árvore (uma árvore binária com propriedades especiais[2]) ou como um vetor. Para uma ordenação crescente, deve ser construído um heap máximo (o maior elemento fica na raiz). Para uma ordenação decrescente, deve ser construído um heap mínimo(o menor elemento fica na raiz).

  • Pessoal, 

    Nao entendi essa, da descricao de uma implementacao do heapsort, eu tirei: 

    (decrease the size of the heap by one so that the previous max value will stay in its proper placement) 
    Isso me leva a entender que o heap size varia com as iteraçoes....

    Pra mim o gabarito deveria ser: "Errado".
  • Tirado do livro de algoritmos do CORMEN:
    "Neste capítulo, introduzimos outro algoritmo de ordenação. Como a ordenação por intercalação,
    mas diferente da ordenação por inserção, o tempo de execução do heapsort é O(n lg n).
    Como a ordenação por inserção, mas diferente da ordenação por intercalação, o heapsort ordena
    localmente: apenas um número constante de elementos do arranjo é armazenado fora do arranjo
    de entrada em qualquer instante. Desse modo, o heapsort combina os melhores atributos
    dos dois algoritmos de ordenação que já discutimos."

    "ordenados no local: os números são reorganizados dentro do arranjo A, com no máximo um número constante deles armazenado
    fora do arranjo em qualquer instante."

ID
726943
Banca
INSTITUTO CIDADES
Órgão
TCM-GO
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

São exemplos de algoritmos de ordenação, exceto:

Alternativas
Comentários
  •  busca linear (ou busca sequêncial) para expressar um tipo de pesquisa em vetores ou listas de modo sequencial, i. e., elemento por elemento, de modo que a função do tempo em relação ao número de elementos é linear, ou seja, cresce proporcionalmente. Num vetor ordenado, essa não é a pesquisa mais eficiente, a pesquisa (ou busca) binária, por exemplo, é um tipo de pesquisa com o gráfico de tempo logarítmo.
  • a) BUBBLE SORT: faz parte dos métodos simples de ordenação. A ideia é percorrer o vetor diversas vezes, a cada passagem fazendo flutuar para o topo o maior elemento da sequência.
    COMPLEXIDADE DE TEMPO: O(n²)

    b) SELECTION SORT e não "SELECT SORT":
    é um algoritmo de ordenação baseado em se passar sempre o menor valor para a primeira posição ( ou o maior valor, dependendo da ordem requerida - crescente ou decrescente), depois o segundo menor valor (supondo ordem crescente) para a segunda posição e assim sucessivamente para os N - 1 elementos restantes até os 2 últimos elementos.
    COMPLEXIDADE DE TEMPO: O(n²)

    c) SHELL SORT:
    é o mais eficiente algoritmo de classificação dentre os de ordem quadrática. É um refinamento do método INSERTION SORT. O algoritmo difere desse último pelo fato de, no lugar de considerar o ARRAY a ser ordenado como único segmento, ele considera vários segmentos, aplicando o método INSERTION SORT em cada um deles.
    A COMPLEXIDADE DO ALGORITMO NÃO PODE SER DETERMINADA PORQUE DEPENDE DA SEQUÊNCIA DE GAP(SALTO): pode ser tanto O(n²) quanto O(nlog2n) ou O(n3/2).

    d) BUSCA LINEAR OU SEQUENCIAL(ERRADA): não é um algoritmo de ordenação e sim um algoritmo de pesquisa: ele busca em vetores e listas através de uma forma sequencial, i.e. elemento por elemento, de modo que a função tempo em relação ao número de elementos é linear, ou seja, cresce proporcionalmente.

    e) QUICK SORT: método de ordenação rápido e eficiente; funciona por comparação NÃO-ESTÁVEL. Adota a estratégia de divisão e conquista. A estratégia consiste em rearranjar as chaves de modo que as chaves menores precedam as maiores. Em seguida, o QUICK SORT ordena as duas sublistas de chave menores e maiores recursivamente até que a lista completa se encontre ordenada.
    COMPLEXIDADE DE TEMPO:
    Melhor e médio casos: O(nlog2n)
    Pior caso: O(n²)
  • Essa questão com "Select Sort" era digna de anulação.

  • Força Guerreiro!!!!!!


ID
758500
Banca
FUMARC
Órgão
TJ-MG
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Analise as seguintes afirmativas sobre métodos de ordenação.

I. Quicksort divide um conjunto de itens em conjuntos menores, que são ordenados de forma independe, e depois os resultados são combinados para produzir a solução de ordenação do conjunto maior.

II. Seleção é um método que consiste em selecionar o menor item de um vetor e substituí-lo pelo item que estiver na primeira posição. Essas duas operações são repetidas com os itens restantes até o último elemento.

III. Shellsort é uma extensão do algoritmo de ordenação por Inserção, contornando o problema que ocorre quando o menor item de um vetor está na posição mais à direita.

Assinale a alternativa CORRETA:


Alternativas
Comentários
  • Quicksort

    O problema desta página é o mesmo das três páginas anteriores:  rearranjar um vetor v[0..n-1] (ou seja, permutar os elementos do vetor) de modo que ele fique em ordem crescente, isto é, de modo que tenhamos v[0] ≤ ... ≤ v[n-1].

    O algoritmo Quicksort, inventado por C.A.R. Hoare [Computer Journal, 5, pp.10-15, 1962], resolve o problema.  O algoritmo é muito rápido em geral, mas é lento em algumas raras instâncias especiais.  O algoritmo consome tempo proporcional a  n log(n)  em média e proporcional a  n2  no pior caso.

    Usaremos duas abreviaturas ao discutir o algoritmo.  A expressão  "v[h..j] ≤ x"  será usada como abreviatura de  "v[i] ≤ x para todo i no conjunto de índices h..j".  Analogamente, a expressão  "v[h..j] ≤ v[k..m]"  será interpretada como "v[i] ≤ v[l] para todo ino conjunto h..j e todo l no conjunto k..m".

    http://www.ime.usp.br/~pf/algoritmos/aulas/quick.html
     

    Ordenação: algoritmos elementares

    Esta página trata do seguinte problema:  Permutar (ou seja, rearranjar) os elementos de um vetor  v[0..n-1]  de tal modo que eles fiquem em ordem crescente, ou seja, de tal forma que tenhamos  v[0]   ≤   v[1]   ≤   . . .   ≤   v[n-1] .

    http://www.ime.usp.br/~pf/algoritmos/aulas/ordena.html
     

     

    Shell sort

    Criado por Donald Shell em 1959,[1] publicado pela Universidade de Cincinnati, Shell sort é o mais eficiente algoritmo de classificação dentre os de complexidade quadrática. É um refinamento do método de inserção direta.[2] O algoritmo difere do método de inserção direta pelo fato de no lugar de considerar o array a ser ordenado como um único segmento, ele considera vários segmentos sendo aplicado o método de inserção direta em cada um deles.[3] Basicamente o algoritmo passa várias vezes pela lista dividindo o grupo maior em menores. Nos grupos menores é aplicado o método da ordenação por inserção.

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



     

  • Sempre achei que quicksort primeiro fazia o processo para a lista inteira, e depois repetia o processo recursivamente para as chaves a esquerda e a direita do pivot. Alguém poderia comentar sobre isso por favor?
  • I. Quicksort divide um conjunto de itens em conjuntos menores, que são ordenados de forma independe, e depois os resultados são combinados para produzir a solução de ordenação do conjunto maior. (Correto)

    a) Algoritmo Quicksort é do tipo dividir para conquistar.
    b) Ideia do algoritmo: efectuar partição dos dados e ordenar as várias partes independentemente (de forma recursiva)
    c) Processo de partição é crítico
    d) Uma vez efectuada a partição, cada uma das partes pode ser ordenada pelo mesmo algoritmo.

    II. Seleção é um método que consiste em selecionar o menor item de um vetor e substituí-lo pelo item que estiver na primeira posição. Essas duas operações são repetidas com os itens restantes até o último elemento. (Correto)

    a) A idéia é sempre procurar o menor elemento do vetor e inseri-lo no início do vetor.
    b) Procuramos o menor valor do vetor e colocamos ele em vetor[1]. Procuramos o menor valor do vetor excluindo o já colocado e colocamos ele em   vetor[2]. E assim vamos indo até termos todo o vetor ordenado.

    III. Shellsort é uma extensão do algoritmo de ordenação por Inserção, contornando o problema que ocorre quando o menor item de um vetor está na posição mais à direita. (Correta)

    a) Extensão do algoritmo de ordenação por inserção
    b) Ordenação por inserção só troca itens adjacentes para determinar o ponto de inserção.
    c) São efetuadas n-1 comparações e movimentações quando o menor item está na última posição
  • Essa afirmativa tá com muito mais cara de merge sorte que quick sort não acham? Apesar de serem parecidos pelo fato de dividir e conquistar, é característica do merge ir "juntando" novamente os sub-vetores e os ordenar um com o outro. No quick vai se fragmentando cada vez mais o vetor total separando-o por um pivô. Ao final, cada sub -vetor já está disposto de forma ordenada, não existe essa "volta" reordenando um com o outro. O GABARITO deveria ser a letra C.

  • Gabarito D

    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).
     

    Seleção - encontra o menor elemento e o troca com a primeira posição, depois o segundo menor com a segunda posição, e assim sucessivamente (n-1 vezes). Número de com,parações (N2 − N)/2, sendo muito lento e inadequado para valores grandes de N. 
     

    Shellsort - é o mais eficiente algoritmo de classificação dentre os de complexidade quadrática. É um refinamento do método de inserção direta. Os itens separados de h posições são earranjados. Todo h-ésimo item leva a uma lista ordenada. Tal lista é dita estar h-ordenada.
     

     

     

     

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

  • Força Guerreiro!!!!!!

  • Força Guerreiro!!!!!!


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

Com relação a classificação de dados, julgue os itens que se seguem.


O método de classificação Shellsort iguala-se ao método Quicksort em termos de complexidade temporal, porém é mais eficiente para quantidades pequenas a moderadas de dados.

Alternativas
Comentários
  • Shellsort:
      É o método a ser escolhido para a maioria das aplicações por ser muito e?ciente para arquivos de tamanho moderado.
      Mesmo para arquivos grandes, o método é cerca de apenas duas vezes mais lento do que o Quicksort.
      Sua implementação é simples e geralmente resulta em um programa pequeno.
      Não possui um pior caso ruim e quando encontra um arquivo parcialmente ordenado trabalha menos.
  • A questão está errada por completa. "O método de classificação Shellsort iguala-se ao método Quicksort em termos de complexidade temporal, porém é mais eficiente para quantidades pequenas a moderadas de dados."
    A primeira parte está completamente errada. O Shellsort tem a complexidade dependente do gap escolhido. O problema da complexidade de tempo do Shellsort continua aberto. Mas, de uma forma geral, ele é pior que o Quicksort.
    A segunda parte é relativa. Depende bastante dos dados de entrada. O Shellsort se beneficia de dados ordenados ou quase ordenados. Para dados aleatórios, o Quicksort tende a se sair melhor. Na prática, o shellsort se sai um pouco melhor com um conjunto pequeno de dados. Mas não é categórico que ele é mais eficiente.
  • Shellsort - O(n lg(n)2)

    Quicksort - O(nlg(n))

  • QUICK - o (n log n) || o (n log n) || O (n2)

    Shell -    O (n) || o (n) || O (n log n)

  • Força Guerreiro!!!!!!


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

Ao se tratar de classificação parcial de um conjunto de dados, o método mais indicado, de forma geral, é o Quicksort Parcial.

Alternativas
Comentários
  • http://www.dcc.ufmg.br/algoritmos-edicao2/cap4/transp/completo4/cap4.pdf
  • QuickSort

    Também conhecido como interchange sort, ou método de troca e partição, parte de uma premissa conhecida: dividir para conquistar, isto é , dividir um problema grande em problemas menores geralmente diminui a complexidade geral do problema.

    É método de ordenação por troca, sendo que, é mais difícil de ser implementado. O Bubble sort, outro método de ordenação por troca, é mais simples.


    Gabarito Certo


    Fonte: Estrutura de Dados - Botini - Ed: Senac

  • Questão muito esquisita. Não existe um método que seja sempre o mais indicado
    , sempre haverá de se analisar o caso, além de certas condições como por exemplo se os dados já estão parcialmente ordenados, o número de elementos a se ordenar, etc etc

  • Rafael, quando ele fala de forma geral, quer dizer que na maioria dos testes ele sai campeão!

  • Força Guerreiro!!!!!!


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

O método de classificação Quicksort é estável e executado em tempo linearmente dependente da quantidade de dados que estão sendo classificados.

Alternativas
Comentários
  • O consumo de tempo da função quicksort é proporcional ao número de comparações entre elementos do vetor. Se o índice j devolvido por separa estiver sempre mais ou menos a meio caminho entre p e r , o número de comparações será aproximadamente

    n log2n ,

    sendo n o número de elementos do vetor. Caso contrário, o número de comparações estará na ordem de n2 . (Isso acontece, por exemplo, se o vetor já estiver ordenado ou quase ordenado.) Portanto, o pior caso do Quicksort não é melhor que o dos algoritmos elementares.

    Felizmente, o pior caso é muito raro. Em média, o consumo de tempo do quicksort é proporcional a n log2n .

  • "O método de classificação Quicksort é estável..."

    O método QuickSort é instável. Os métodos de classificação estáveis são MergeSort, InsertionSort e BubbleSort.

    "... e executado em tempo linearmente dependente da quantidade de dados que estão sendo classificados."

    Não é linear - O(N). A complexidade do QuickSort é O(N * log(N)), isso no melhor caso e no caso médio. No pior caso, a complexidade do QuickSort é O(N²).

    Abraços.
  • ESTÁVEL: Um algoritmo de ordenação diz-se estável se  preserva a ordem de registros de chaves iguais. Isto é, se tais registros aparecem na sequência ordenada na mesma ordem em que estão na sequência inicial. 

    Esta propriedade é útil apenas quando há dados associados às chaves de ordenação.


    Alguns algoritmos de ordenação estáveis:

    · Bubble sort

    · Insertionsort

    · Merge sort

    · Bucket sort

    · Counting Sort2

     

    Alguns algoritmos de ordenação não estável:

    · Selection Sort (Dependedo algorítmo)

    · Quick Sort

    · Heap Sort

    · Shell Sort


  • algoritmos estáveis - MIB, homens de preto - merge, insert e bubble sort

    algoritmos instáveis - SSH Q, segurança - select, shell, heap e quick sort

  • Em Quicksort, a lista é dividida em parte esquerda e parte direita, sendo que os elementos da parte esquerda são todos menores do que os elementos da parte direita. Em seguida, as duas partes são ordenadas recursivamente.nao é linear pois seu desempenho é (n log n).

  • Força Guerreiro!!!!!!


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

Caso os dados estejam fora de ordem, o uso do método de classificação por inserção é pouco eficiente, mas quanto mais ordenados os dados estiverem inicialmente, mais eficiente em termos de tempo de execução ele se torna.

Alternativas
Comentários
  • De acordo com Ziviani,
    O número mínimo de comparações e movimentos ocorre quando os itens estão originalmente em ordem.
    O número máximo ocorre quando os itens estão originalmente na ordem reversa.
  • 2016

    O algoritmo de ordenamento por inserção tem o menor número de trocas quando o vetor está ordenado de forma inversa à ordem do procedimento.

    Errada

     

    2012

    O método de ordenamento denominado inserção funciona por meio do seguinte processo: encontra-se o menor elemento, que é posicionado na primeira posição, depois posiciona-se o segundo menor elemento na segunda posição, e assim sucessivamente.

     

    Errada → selection

     

  • Força Guerreiro!!!!!!


ID
814126
Banca
FAPERP
Órgão
TJ-PB
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O número médio de comparações do método de ordenação Quicksort é:

Alternativas
Comentários
  • QuickSort

    Melhor Caso: O(n log n) 

    Médio Caso: O(n log n) 

    Pior Caso: O(n^2)

  • Gabarito A

    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 !

  • a-

    quicksort - (n log n)

    bubblesort - n²

    binary search tree - (log n)

  • Força Guerreiro!!!!!!


ID
814219
Banca
FAPERP
Órgão
TJ-PB
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Assinale a alternativa que corresponde a um algoritmo de ordenação de vetores que adota a estratégia de divisao e conquista.

Alternativas
Comentários
  • Ordenação Rápida (QuickSort)

    -> um dos métodos mais eficientes

    ->escolha do pivô e o particionamento da tabela

     

  • Além do Quick Sort o Merge Sort também utiliza a estratégia de divisão e conquista.

  • Gabarito D

    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).
     

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

     

     

     

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

  • Força Guerreiro!!!!!!


ID
872752
Banca
CESPE / CEBRASPE
Órgão
TJ-AC
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de métodos de ordenação dos dados, julgue os itens subsequentes.


O método de ordenamento denominado inserção funciona por meio do seguinte processo: encontra-se o menor elemento, que é posicionado na primeira posição, depois posiciona-se o segundo menor elemento na segunda posição, e assim sucessivamente.

Alternativas
Comentários
  • Metodo de ordenação bubble sort

  • Queridos guerreiros do baú, o método de odernação descrito pela questão é o SELECTION SORT.

     

    Fonte (quase copy cola): https://pt.wikipedia.org/wiki/Selection_sort

  • O selection sort consiste em pegar sempre o menor valor (ou o maior, dependendo do seu problema) e passar para a primeira posição. Depois, pegamos o segundo menor e colocamos na segunda posição e assim vai até ordenar os elementos.

    O bubble sort, percorremos o vetor várias vezes e a cada passagem, fazemos o maior elemento da sequência ir para o topo.

  • Gabarito Errado

    bubble sort, ou ordenação por flutuação (literalmente "por bolha"), é um algoritmo de ordenação dos mais simples. A ideia é percorrer o vector diversas vezes, e a cada passagem fazer flutuar para o topo o maior elemento da sequência. Essa movimentação lembra a forma como as bolhas em um tanque de água procuram seu próprio nível, e disso vem o nome do algoritmo.

    No melhor caso, o algoritmo executa {\displaystyle n} operações relevantes, onde {\displaystyle n} representa o número de elementos do vector. No pior caso, são feitas {\displaystyle n^{2}} operações. A complexidade desse algoritmo é de ordem quadrática. Por isso, ele não é recomendado para programas que precisem de velocidade e operem com quantidade elevada de dados.

     

    Este algoritmo percorre a lista de itens ordenáveis do início ao fim, verificando a ordem dos elementos dois a dois, e trocando-os de lugar se necessário. Percorre-se a lista até que nenhum elemento tenha sido trocado de lugar na passagem anterior.

     

     

     

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

  • Força Guerreiro!!!!!!


ID
872755
Banca
CESPE / CEBRASPE
Órgão
TJ-AC
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de métodos de ordenação dos dados, julgue os itens subsequentes.


Em uma pesquisa de um registro em um arquivo sequencial, todos os registros são percorridos até que o registro desejado seja encontrado.

Alternativas
Comentários
  • Gabarito Certo

    um arquivo sequencial a organização de seus itens faz-se de forma que para acessar um determinado registro é necessário varrer todos os que antecedem. A sequência do arquivo pode ser baseada na ordenação através de alguma chave (um campo ou uma combinação de campos), sendo que:

    É a mais conhecida e usada organização de arquivo;

    Apresenta as mais simples (com baixa complexidade de programação) implementações de operações básicas.

     

     

     

     

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

  • Força Guerreiro!!!!!!


ID
872758
Banca
CESPE / CEBRASPE
Órgão
TJ-AC
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de métodos de ordenação dos dados, julgue os itens subsequentes.


No método de ordenamento denominado shellsort, as comparações e as trocas são feitas conforme determinada distância entre dois elementos, de modo que, uma distância igual a 6 seria a comparação entre o primeiro elemento e o sétimo, ou entre o segundo elemento e o oitavo, e assim sucessivamente, repetindo-se esse processo até que as últimas comparações e trocas tenham sido efetuadas e a distância tenha diminuído até chegar a 1.

Alternativas
Comentários
  •  É um refinamento do método de inserção direta. O algoritmo difere do método de inserção direta pelo fato de no lugar de considerar o array a ser ordenado como um único segmento, ele considera vários segmentos sendo aplicado o método de inserção direta em cada um deles. 

    Basicamente o algoritmo passa várias vezes pela lista dividindo o grupo maior em menores. Nos grupos menores é aplicado o método da ordenação por inserção. 

     

     

    https://pt.wikipedia.org/wiki/Shell_sort

  • CESPE, explicou é verdadeiro.

  • Força Guerreiro!!!!!!


ID
906289
Banca
FCC
Órgão
TRT - 9ª REGIÃO (PR)
Ano
2013
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Analise as afirmativas:

I. Considere o método de ordenação que implementa o seguinte processo: uma coleção desordenada de n elementos é dividida em duas metades e cada metade é utilizada como argumento para a reaplicação recursiva da subrotina. Os resultados das duas reaplicações são, então, combinados pela intercalação dos elementos de ambas, resultando em uma coleção ordenada. A complexidade do caso médio desse algoritmo é expressa por O(n log2 n).

II. Existem aplicações para listas lineares nas quais inserções, retiradas e acessos a itens ocorrem sempre em um dos extremos da lista. Nestes casos a estrutura adequada para resolvê-los é a pilha ou stack.

III. No método Quicksort, o pivô é responsável pelo número de partições em que o vetor é dividido. Como o pivô não pode ser um elemento que esteja repetido no vetor, o Quicksort não funciona quando há elementos repetidos.

Está correto o que se afirma em

Alternativas
Comentários
  • I. Trata-se do método MergeSort, corretamente descrito, cuja complexidade de tempo é Θ(n log2 n). Alternativa VERDADEIRA.

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



    II - As duas estruturas de dados lineares que permitem inserções, retiradas e acessos somente aos extremos da lista são pilhas (stacks) e filas (queues). Alternativa VERDADEIRA.

    http://pt.wikipedia.org/wiki/Pilha_(inform%C3%A1tica)



    III - No método QuickSort, qualquer elemento pode ser o pivô. Este obviamente funciona mesmo quando há elementos repetidos. Alternativa FALSA.

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

  • Força Guerreiro!!!!!!


ID
906781
Banca
FCC
Órgão
TRT - 9ª REGIÃO (PR)
Ano
2013
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere as afirmativas sobre

i) Métodos de pesquisa sequencial e de pesquisa binária

ii) Métodos de ordenação

Sabendo que N se refere ao número de elementos do conjunto, a alternativa em que i) e ii) estão ambas ERRADAS, é

Alternativas
Comentários
  • b) i) O método de pesquisa binária não pode ser aplicado quando os dados estão ordenados em ordem decrescente, mesmo se o código do método for readequado.  Está errada pois a pesquisa binária pode sim ser realizada em um array cuja ordem é decrescente, para isso basta alterar o algoritmo, adaptando-o a esse tipo de ordenação.

    ii) O método de Seleção (Selection sort) é o método mais rápido para qualquer tamanho de N se os elementos já estão ordenados, pois este é o seu melhor caso, que é O(Log2 N). Está errada pois esses fatos tratam-se na verdade sobre o insertion sort, esse algoritmo possui uma grande flexibilidade com relação ao grau de ordenação prévia do vetor, se adaptando bem aos casos onde o vetor está razoavelmente pré-ordenado, sendo em seu melhor caso O(Log² N).

  • Que complexidade é essa? O(Log² N)? Nos materiais do provas de TI as complexidades para o melhor caso para o Selection e o Insertion são respectivamente O(n²) e O(n). 

  • b-

    A pesquisa ou busca binária é um algoritmo de busca em vetores que segue o paradigma de divisão e conquista. Ela parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor.

    https://pt.wikipedia.org/wiki/Pesquisa_bin%C3%A1ria

  • Força Guerreiro!!!!!!


ID
966112
Banca
Marinha
Órgão
Quadro Técnico
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Correlacione os termos de estrutura de dados às suas respectivas características, e assinale a opção correta
TERMOS DE ESTRUTURA DE DADOS
I - Fila
II - Pilha
III- Árvore
IV - Recursividade
V - Ordenação Bolha 
VI - Ordenação por Intercalação (Mergesort)

CARACTERÍSTICAS
( ) A plicado na solução do problema da torre de Hanói
( ) Inserções e remoções são executadas na mesma extremidade da lista
( ) Para inserções e remoções são necessários dois pontos.
( ) Possui um conjunto finito de elementos denominados nós ou vértices.
( ) Percorre a tabela do início ao fim, sem interrupção, trocando de posição dois elementos consecutivos sempre que estes se apresentem fora de ordem.

Alternativas
Comentários
  • Aplicado na solução do Problema da Torre de Hanói

    Recursividade


    Inserções e remoções são executadas na mesma estremidade da lista.

    Pilha


    Para inserções e remoções são necessários dois ponteiros

    Fila


    Possui um conjunto finito de elementos denominados nós ou vértices.

    Árvore


    Percorre a tabela do início ao fim, sem interrupção dois elementos consecutivos sempre que estes se apresentem fora de ordem.

    Ordenação bolha.

  • Basta entender que torre de Hanói utiliza um método recursivo para acertar a questão.


ID
966172
Banca
Marinha
Órgão
Quadro Técnico
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Em estrutura de dados, o algoritmo de ordenação que se limita a percorrer a tabela do início ao fim, sem interrupção, trocando de posição dois elementos consecutivos sempre que estes se apresentem fora de ordem, é denominado de ordenação :

Alternativas
Comentários
  • Bolha - Idéia básica é percorrer o arquivo sequencialmente várias vezes. Cada passagem consiste em comparar cada elemento no arquivo e seu sucessor (x[i] com x[i+1]) e trocar os dois elementos se não estiverem na ordem certa.

    Quicksort  - pode ser definido mais adequadamente como um procedimento recursivo.

    Heap sort - Baseado no princípio de ordenação por seleção em árvore binária. O método consiste em duas fases distintas: primeiro é feita a montagem da árvore binária (HEAP) contendo todos os elementos do vetor, de tal forma que o valor contido em qualquer nó seja maior do que os valores de seus sucessores e, numa segunda fase, o HEAP é usado para a seleção dos elementos na ordem desejada. Deve-se mover os elementos de maior valor para o início antes de serem finalmente colocados em sua posição correta (no final).

    Inserção - Muitas Variações:

    inserção com pesquisa binária: consiste em utilizar o método da busca binária para localizar a posição a ser inserido o elemento.

    Inserção em lista ligada: consiste em não mover as informações e sim efetuar as inserções nas ligações.

    A melhor variação é a inserção com incrementos decrescentes, também chamado de ordenação de Shell.

    Intercalação mergesort - é o método que combina dois ou mais arquivos classificados num terceiro arquivo.

  • C

    bolha.


ID
985144
Banca
CESPE / CEBRASPE
Órgão
CPRM
Ano
2013
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de definições de classificação de dados e tipos abstratos de dados, julgue os itens que se seguem.


O algoritmo de ordenação heapsort refere-se ao processo de divisão, ao meio, do grupo de elementos, repetindo-se a divisão para cada um dos subgrupos, até que esses tenham apenas um elemento. Nesse ponto, faz-se o reagrupamento dos subgrupos, comparando os elementos e trocando-os, se necessário, para que fiquem ordenados. Repete-se esse procedimento até restar um só grupo de elementos.

Alternativas
Comentários
  • Acho que esse é o MergeSort

     

    2014

    Independentemente do vetor de entrada, o algoritmo Quick Sort divide o vetor ao meio, ordenando cada metade recursivamente e intercalando as duas metades ordenadas.

    errada

     

  • A descrição da questão parece ser do MergeSort.

  • Gabarito Errado

    Essa descrição é do MergeSort.

    O MergeSort, ou ordenação por mistura, é um exemplo de algoritmo de ordenação por comparação do tipo dividir-para-conquistar.

    Sua ideia básica consiste em Dividir (o problema em vários subproblemas e resolver esses subproblemas através da recursividade) e Conquistar (após todos os subproblemas terem sido resolvidos ocorre a conquista que é a união das resoluções dos subproblemas). Como o algoritmo Merge Sort usa a recursividade, há um alto consumo de memória e tempo de execução, tornando esta técnica não muito eficiente em alguns problemas.

    Palavra chave: dividir-para-conquistar.

     

    Heapsort

    O Heapsort utiliza uma estrutura de dados chamada heap, para ordenar os elementos à medida que os insere na estrutura. Assim, ao final das inserções, os elementos podem ser sucessivamente removidos da raiz da heap, na ordem desejada, lembrando-se sempre de manter a propriedade de max-heap.

    A heap pode ser representada como uma árvore (uma árvore binária com propriedades especiais) ou como um vetor. Para uma ordenação decrescente, deve ser construída uma heap mínima (o menor elemento fica na raiz). Para uma ordenação crescente, deve ser construído uma heap máxima (o maior elemento fica na raiz).

    Frase chave: ordenar os elementos à medida que os insere na estrutura.

     

     

     

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

  • Força Guerreiro!!!!!!


ID
985147
Banca
CESPE / CEBRASPE
Órgão
CPRM
Ano
2013
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de definições de classificação de dados e tipos abstratos de dados, julgue os itens que se seguem.


No algoritmo de ordenação denominado quicksort, escolhe-se um ponto de referência, denominado pivô, e separam-se os elementos em dois grupos: à esquerda, ficam os elementos menores que o pivô, e à direita ficam os maiores. Repete-se esse processo para os grupos de elementos formados (esquerda e direita) até que todos os elementos estejam ordenados.

Alternativas
Comentários
  • Gabarito Certo

    O quicksort adota a estratégia de divisão e conquista. A estratégia consiste em rearranjar as chaves de modo que as chaves "menores" precedam as chaves "maiores". Em seguida o quicksort ordena as duas sublistas de chaves menores e maiores recursivamente até que a lista completa se encontre ordenada. Os passos são:

    Escolha um elemento da lista, denominado pivô;

    Particiona: rearranje a lista de forma que todos os elementos anteriores ao pivô sejam menores que ele, e todos os elementos posteriores ao pivô sejam maiores que ele. Ao fim do processo o pivô estará em sua posição final e haverá duas sub listas não ordenadas. Essa operação é denominada partição;

    Recursivamente ordene a sub lista dos elementos menores e a sub lista dos elementos maiores;

    O caso base da recursão são as listas de tamanho zero ou um, que estão sempre ordenadas. O processo é finito, pois a cada iteração pelo menos um elemento é posto em sua posição final e não será mais manipulado na iteração seguinte.

    A escolha do pivô e os passos do Particiona podem ser feitos de diferentes formas e a escolha de uma implementação específica afeta fortemente a performance do algoritmo.

     

     

     

     

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

  • Força Guerreiro!!!!!!


ID
998263
Banca
FUNCAB
Órgão
DETRAN-PB
Ano
2013
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Das opções seguintes, assinale aquela que contém apenas algoritmos de ordenação de dados.

Alternativas
Comentários
  • 1 - O bubble sort, ou ordenação por flutuação (literalmente "por bolha"), é um algoritmo de ordenação dos mais simples. A ideia é percorrer o vector diversas vezes, a cada passagem fazendo flutuar para o topo o maior elemento da sequência. Essa movimentação lembra a forma como as bolhas em um tanque de água procuram seu próprio nível, e disso vem o nome do algoritmo.


    2 - Shell sort é o mais eficiente algoritmo de classificação dentre os de complexidade quadrática. É um refinamento do método de inserção direta.O algoritmo difere do método de inserção direta pelo fato de no lugar de considerar o array a ser ordenado como um único segmento, ele considera vários segmentos sendo aplicado o método de inserção direta em cada um deles. Basicamente o algoritmo passa várias vezes pela lista dividindo o grupo maior em menores. Nos grupos menores é aplicado o método da ordenação por inserção.


    3 - Um dos métodos mais simples de ordenação é a inserção direta. Inicialmente, são ordenados os 2 primeiros membros do array. Em seguida, é inserido o 3º membro na sua posição ordenada com relação aos 2 primeiros. O processo continua até que todos os elementos estejam ordenados.


    4 - O Quicksort adota a estratégia de divisão e conquista. A estratégia consiste em rearranjar as chaves de modo que as chaves "menores" precedam as chaves "maiores". Em seguida o Quicksort ordena as duas sublistas de chaves menores e maiores recursivamente até que a lista completa se encontre ordenada.

  • Gabarito B

    O Deque não é um algorítimo de ordenação de dados.

     

     

     

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

  • Força Guerreiro!!!!!!


ID
1043827
Banca
CESPE / CEBRASPE
Órgão
MPU
Ano
2013
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de programação estruturada e algoritmos de ordenação e pesquisa, julgue os próximos itens.


Entre os algoritmos de ordenação e pesquisa bubble sort, quicksort e heapsort, o quicksort é considerado o mais eficiente, pois se caracteriza como um algoritmo de dividir- para- conquistar, utilizando operações de particionamento.

Alternativas
Comentários
  • Algorítmo Melhor Média Pior
    QuickSort n log n n log n n^2
    Merge Sort n log n n log n n log n
    Heapsort n log n n log n n log n
    Insertion sort n n^2 n^2

    Podemos ver pela tabela que no pior caso o HEADPSORT supera em eficiência o Quicksort.
  • Qual é o algorítmo mais rápido de sort?
  • Destes 3, o heap é o mais eficiente.



    http://dropsti.blogspot.com/2014/06/algoritmos-de-ordenacao.html

  • Dizer "entre os algoritmos de ordenação e pesquisa" está correto? Achei que estes três algoritmos fossem somente para ordenação. Se ainda falasse de busca binária, tudo bem. Mas tenho minhas dúvidas se esta parte da questão está correta.

  • o de melhor desempenho é o HEAPSORT, pois tanto no caso médio como no pior caso a complexidade dele é O(n log n).

    o QUICKSORT tem no caso médio O(n log n), porém no pior caso, se a lista estiver ordenada, a complexidade é quadrática O(n²)

    e o BUBLESORT é O(n²) nos dois casos
  • Ao comparar algoritmos de ordenamento sem fornecer informação sobre como os dados de entrada estão organizados (nem dizer qual é o caso analisado: pior, melhor, média) podemos considerar a questão incorreta; afinal, mais eficiente será o algoritmo que ordenar os dados realizando menos operações de I/O, e isto depende de como os dados estarão dispostos no momento da comparação para o swap em memória.

  • Gabarito Errado

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

     

     

     

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

  • Força Guerreiro!!!!!!


ID
1064977
Banca
CESPE / CEBRASPE
Órgão
TCE-ES
Ano
2013
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O processo de ordenação de vetores que busca o menor elemento do vetor e o insere na primeira posição do vetor e que, posteriormente, busca o segundo menor valor do vetor e o coloca na segunda posição do vetor, e assim sucessivamente até que todo o vetor esteja ordenado, denomina-se

Alternativas
Comentários
  • A ordenação por seleção (do inglês, selection sort. Do russo, Сортировка выбором) é um algoritmo de ordenação baseado em se passar sempre o menor valor do vetor para a primeira posição (ou o maior dependendo da ordem requerida), depois o de segundo menor valor para a segunda posição, e assim é feito sucessivamente com os (n-1) elementos restantes, até os últimos dois elementos.


    fonte: https://pt.wikipedia.org

  • palavra chave do método de ordenação por seleção: menor valor....

  • O método da bolha é um exemplo de classificação por seleção efetivada pela seleção contínua do menor valor de uma chave contido em determinado vetor. 

    errada --> selection

     

  • Métodos de Ordenação
     

     Ordenação por troca
        Bubble Sort
        Quick Sort


     Ordenação por Inserção
        Inserção Direta


     Ordenação por Seleção
        Selection Sort
        Heap Sort

     

    Ordenação por Seleção/Selection Sort: É um tipo de ordenação por seleção que consiste em trocar o menor elemento de uma lista com o elemento posicionado no inicio da lista, depois o segundo menor elemento para a segunda posição e assim sucessivamente, até que o MAIOR elemento seja posicionado no final da lista.

  • Gabarito A

    Seleção - encontra o menor elemento e o troca com a primeira posição, depois o segundo menor com a segunda posição, e assim sucessivamente (n-1 vezes). Número de com,parações (N2 − N)/2, sendo muito lento e inadequado para valores grandes de N. 
     

     

     

     

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

  • Força Guerreiro!!!!!!


ID
1068859
Banca
IFC
Órgão
IFC-SC
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Há situações em que é necessário ordenar os dados. Para esse procedimento existem algoritmos de ordenação. Um deles consiste na ordenação onde são efetuadas comparações entre os dados armazenados em um vetor de tamanho n, e cada elemento de posição i é comparado com o elemento de posição i+1, sendo que quando a ordenação procurada é encontrada, uma troca de posições entre os elementos é feita. Qual o nome deste tipo de algoritmo de ordenação?

Alternativas
Comentários
  • a resposta é c!!!

  • Gabarito C

    BubbleSort - pouco eficiente para ordenar grandes quantidades de informações. Compara posições adjacentes e vai ordenando o vetor. Elemento da posição i é comparado com o elemento da posição i + 1. 

     

     

     

     

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

  • Algoritmo de ordenação rápida (quick sort).Ordenação NÃO estável.

    É um algoritmo de comparação que emprega a estratégia de “divisão e conquista”. Divide sua lista de entrada em duas sub-listas a partir de um pivô, para em seguida realizar o mesmo procedimento nas duas listas menores até uma lista unitária.

    Algoritmo de ordenação por intercalação (merge sort) - Ordenação estável.

    Mergesort é um exemplo de algoritmo de ordenação que faz uso da estratégia “dividir para conquistar” para resolver problemas.Esse algoritmo divide o problema em pedaços menores, resolve cada pedaço e depois junta (merge) os resultados.

    Algoritmo de ordenação por troca (bubble sort)- Ordenação estável.GABARITO.

    Algoritmo de ordenação por inserção (insertion sort)- Ordenação estável.

    É o método que percorre um vetor de elementos da esquerda para a direita e à medida que avança vai ordenando os elementos à esquerda.

    Algoritmo de ordenação por seleção (selection sort)- Ordenação NÃO estável.

    Consiste em selecionar o menor item e colocar na primeira posição, selecionar o segundo menor item e colocar na segunda posição, segue estes passos até que reste um único elemento.

    Fonte:https://www.treinaweb.com.br/blog/conheca-os-principais-algoritmos-de-ordenacao/

  • Força Guerreiro!!!!!!


ID
1112914
Banca
FCC
Órgão
AL-PE
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Cláudia trabalha como Analista Legislativo na Assembleia Legislativa do Estado de Pernambuco e recebeu de seu chefe um arquivo com a lista de todas as Leis Orçamentárias válidas entre 1900 até o presente ano, sem nenhuma ordenação. Para melhor localizar as Leis com base no ano a qual pertencem, Cláudia implementou uma solução que, buscando agilizar este processo,

Alternativas
Comentários
  • Gabarito A

    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
1131634
Banca
CS-UFG
Órgão
UEAP
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A ordenação de registros de arquivos é um recurso utilizado para agilizar o acesso aos dados. Arquivos de registros fisicamente ordenados com mais de 100.000 registros

Alternativas
Comentários
  • Segundo (Novathe, 4Ed. p329) "O maior problema com um índice primário — bem como com qualquer outro arquivo ordenado — é a inclusão e a exclusão de registros. Com um índice primário, o problema é composto porque, se tentarmos incluir um registro em sua posição correta no arquivo de dados, devemos não apenas mover  registros para abrir espaço para o novo registro, mas também alterar algumas entradas de índice, uma vez que mover os registros irá alterar os registros-âncora de alguns blocos. Usar um arquivo desordenado de overflow, pode reduzir esse problema."

    Com isso podemos ELIMINAR as letras A e B.

     

    Podemos ELIMINAR a letra C, sabendo que só existirá apenas um índice primário para cada bloco de arquivos de dados. 

    (Novathe, 4Ed. p327) "Um índice primário é um arquivo ordenado cujos registros são de tamanho fixo ... Há uma entrada de índice (ou registro de índice) no arquivo de índice para cada bloco do arquivo de dados."

     

    Ainda, (Novathe, 4Ed. p329) "Pode existir muitos índices secundários (e, assim, muitos campos de indexação) para o mesmo arquivo."

    Resposta LETRA D

  • Força Guerreiro!!!!!!


ID
1151263
Banca
INSTITUTO AOCP
Órgão
Colégio Pedro II
Ano
2013
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Qual das alternativas abaixo indica um algoritmo de ordenação?

Alternativas
Comentários
  • d) Bubble sort.

    Outros também que são considerados

    Shell Sort

    Quick Sort

    Select Sort

    ETC

  • Gabarito D

    bubble sort, ou ordenação por flutuação (literalmente "por bolha"), é um algoritmo de ordenação dos mais simples. A ideia é percorrer o vector diversas vezes, e a cada passagem fazer flutuar para o topo o maior elemento da sequência. Essa movimentação lembra a forma como as bolhas em um tanque de água procuram seu próprio nível, e disso vem o nome do algoritmo.

    No melhor caso, o algoritmo executa {\displaystyle n} operações relevantes, onde {\displaystyle n} representa o número de elementos do vector. No pior caso, são feitas {\displaystyle n^{2}} operações. A complexidade desse algoritmo é de ordem quadrática. Por isso, ele não é recomendado para programas que precisem de velocidade e operem com quantidade elevada de dados.

     

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

  • Algoritmos de Ordenação


    � Bubble Sort: Método simples de ordenação por troca. Algoritmos de ordenação estável. Complexidade no pior caso: O(n2).
    � Selection Sort
    � Insertion Sort (Inserção Direta)
    � Heap Sort
    � Merge Sort
    � Quick Sort

  • d-

    bubble sort:

    complexidade: n.

    pior caso: n²

    em PHP:

    function bubbleSort(&$arr)

    {

       $n = sizeof($arr);

    //1- var com tamanho do array

       for($i = 0; $i < $n; $i++) 

       {

           for ($j = 0; $j < $n - $i - 1; $j++) 

           {

    //2- 2 fors. 1 para navegar pelo array e outro para navegar ate ao valor anterior ao 1° for

               if ($arr[$j] > $arr[$j+1])

               {

                   $t = $arr[$j];

    //3- se o valor do 1° elemento for maior, armazena-lo em um var temp.

                   $arr[$j] = $arr[$j+1];

    //4- o 1°elemento do array recebe o conteudo do 2°, o qual é menor

                   $arr[$j+1] = $t;

    //5- o 2°elemento do array recebe o conteudo da var temp. assim, os 2 elementos cambiam de //pos, executando a ordenacao

               }

           }

       }

    }

  • Força Guerreiro!!!!!!


ID
1158811
Banca
FAFIPA
Órgão
UFFS
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Os termos Quick, Merge, Heap e Buble representam, respectivamente:

Alternativas
Comentários
  • Gabarito: C.

     

    "Respectivamente".

  • Gabarito C

    Questão dada... Métodos de ordenação.

     

     

     

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

  • Força Guerreiro!!!!!!


ID
1177273
Banca
CESGRANRIO
Órgão
Banco da Amazônia
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere utilizar o algoritmo Bubble Sort para ordenar, em ordem crescente, a sequência de números

                        17, 43, 37, 31, 8, 77, 52, 25.

Se a sequência original for a iteração zero, qual será a sequência de números da segunda iteração?

Alternativas
Comentários
  • questão certa é a letra c:

    pois 17, 43, 37, 31, 8, 77, 52, 25

    1º interação 17,37,31,8,43,52,25,77

    2° interação 17, 31, 8, 37, 43, 25, 52, 77


  • Acabei de olhar essa questão no site da Cesgranrio, o gabarito é letra C.

    Prova: http://www.cesgranrio.org.br/pdf/basa0114/provas/PROVA%203%20-%20BANCO%20DE%20DADOS.pdf

    Gabarito: http://www.cesgranrio.org.br/pdf/basa0114/basa0114_gabarito_prova02_03_04.pdf

  • BubbleSort (Bolha) - Definições

    Método de ordenação por troca

    Varre-se a lista trocando-se de posição os elementos adjacentes fora de ordem. Varre-se a lista até que não haja mais trocas e, neste caso, a lista está ordenada.

     

    ou

     

    Troca dois elementos consecutivos se estiverem fora de ordem

     

    1º 17 - 37 - 31 - 8 - 43 - 52 - 25 - 77

     

    2º 17 - 31 - 8 - 37 - 43 - 25 - 52 - 77

  • é, mas tem versão do bublesort que vai do fim para o começo do vetor no loop interno, e isso complica a questão

  • c-

    \\visualizar as iteracoes:

    import java.util.Arrays;

    public class Q{

       public static void main(String[] args) {

          // TODO Auto-generated method stub

          int i,j,aux;

          int arr[] = new int [] {17, 43, 37, 31, 8, 77, 52, 25};

          for (i=0; i <arr.length-1; i++) {

             for (j=0; j <arr.length-i-1; j++) {

                if (arr[j] > arr[j+1]) {

                   aux = arr[j];

                   arr[j] = arr[j+1];

                   arr[j+1] = aux;

                }

             }

             System.out.println(Arrays.toString(arr));

          }

          

       }

    }


ID
1208263
Banca
CESPE / CEBRASPE
Órgão
TJ-SE
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de classificação de dados, julgue os itens subsecutivos.

Independentemente do vetor de entrada, o algoritmo Quick Sort divide o vetor ao meio, ordenando cada metade recursivamente e intercalando as duas metades ordenadas.

Alternativas
Comentários
  • http://www.decom.ufop.br/toffolo/site_media/uploads/2011-2/bcc202/slides/16._quicksort.pdf

  • acho que esse seria o mergeSort

  • Errado: desconsiderou o primeiro passo, conforme abaixo:


    O Quicksort adota a estratégia de divisão e conquista. A estratégia consiste em rearranjar as chaves de modo que as chaves "menores" precedam as chaves "maiores". Em seguida o Quicksort ordena as duas sublistas de chaves menores e maiores recursivamente até que a lista completa se encontre ordenada. 3 Os passos são:

    1- Escolha um elemento da lista, denominado pivô; 2- Rearranje a lista de forma que todos os elementos anteriores ao pivô sejam menores que ele, e todos os elementos posteriores ao pivô sejam maiores que ele. Ao fim do processo o pivô estará em sua posição final e haverá duas sublistas não ordenadas. Essa operação é denominada partição; 3- Recursivamente ordene a sublista dos elementos menores e a sublista dos elementos maiores;

    A base da recursão são as listas de tamanho zero ou um, que estão sempre ordenadas. O processo é finito, pois a cada iteração pelo menos um elemento é posto em sua posição final e não será mais manipulado na iteração seguinte.


    https://pt.wikipedia.org/wiki/Quicksort


  • Nem sempre ele separa no meio. A divisão ocorre com a escolha do pivot. 

  • Gabarito Errado

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

     

     

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

  • Além do exposto pelos colegas, outro fator que torna a questão incorreta é a afirmação "Independentemente do vetor de entrada", pois sendo assim vetores de tamanho 1 também teriam que ser divididos ao meio, o que é impossível.

  • Força Guerreiro!!!!!!


ID
1215088
Banca
CESPE / CEBRASPE
Órgão
TJ-SE
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca da pesquisa e da classificação de dados, julgue os próximos itens.

O método da bolha é um exemplo de classificação por seleção efetivada pela seleção contínua do menor valor de uma chave contido em determinado vetor.

Alternativas
Comentários
  • Este método vai comparando os valores de um vetor, de dois em dois,  e coloca o maiores valores primeiros. Então ele ordena o vetor em uma ordem decrescente.

    Exemplo de vetor: 10,5,15,20,30, 60. Ele compara (10,5), (5,15), (15,20), (20,30), (30,60). Ai fica: 10,15,20,30,60,5. Compara novamente e fica: 15,20,30,60,10,5. Compara e fica: 20,30,60,15,10,5. Compara e fica: 30,60,20,15,10,5. Compara e fica: 60,30,20,15,10,5.

  • método da bolha é um exemplo de classificação por inserção. não por seleção

  • Esse método descrito é o selection sort.

  • Métodos de Ordenação
    • Ordenação por troca
    – BubbleSort (método da bolha)
    – QuickSort (método da troca e partição)
    • Ordenação por inserção
    – InsertionSort (método da inserção direta)
    – BinaryInsertionSort (método da inserção direta binária)
    • Ordenação por seleção
    – SelectionSort (método da seleção direta)
    – HeapSort (método da seleção em árvore)
    • Outros métodos
    – MergeSort (método da intercalação)
    – BucketSort (método da distribuição de chave)

  • 2013

    O processo de ordenação de vetores que busca o menor elemento do vetor e o insere na primeira posição do vetor e que, posteriormente, busca o segundo menor valor do vetor e o coloca na segunda posição do vetor, e assim sucessivamente até que todo o vetor esteja ordenado, denomina-se

      a) ordenação por seleção.

      b) ordenação merge sort.

      c) busca linear.

      d) busca binária

      e) ordenação por inserção.

  • Ao meu ver não é "seleção" e sim "comparação"; e não é "menor" e sim "maior";

  • a bolha é muito fofa... lembro-me da cadeira de introdução a programação, eu tive que descobrir a bolha sozinha... kkkkk'

  • Força Guerreiro!!!!!!


ID
1215097
Banca
CESPE / CEBRASPE
Órgão
TJ-SE
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca da pesquisa e da classificação de dados, julgue os próximos itens.

Durante o processo de classificação, é possível gerar-se um vetor indireto de ordenação (VIO), cuja principal vantagem relaciona-se à possibilidade de realização da movimentação das entradas da tabela, a partir de suas posições originais, para a ordenação dos dados.

Alternativas
Comentários
  • Ele não muda a ordem das entradas da tabela, ou seja, não há alteração física da posição dos elementos. Ele criar um vetor com os endereços das entradas ordenados, ao invés de ordenar os valores da tabela.


    http://pt.slideshare.net/fernandoovargas/classificao-de-dados-4108487

  • B - Vetor Indireto de OrdenaAs entradas são mantidas nas posições originais. A seqüência é dada por um vetor gerado durante o processo de classificação (não envolve movimentação dos registros em uma tabela).

  • Força Guerreiro!!!!!!


ID
1272025
Banca
MPE-RS
Órgão
MPE-RS
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Os métodos de ordenação correspondem ao processo de rearranjar um conjunto de objetos em ordem ascendente ou descendente. O objetivo da ordenação é facilitar a recuperação posterior dos itens do conjunto ordenado. Um algoritmo de ordenação que pode ser usado em uma ampla variedade de situações é denominado de

Alternativas
Comentários
  • A única alternativa que tem algoritmo de ordenação é a d) Quicksort.

  • quicksort : é baseado no fato de que as permutações devem ser preferencialmente para pares de elementos grandes entre distânicas grandes com a finalidade de se conseguirem uma eficiência maior.

    Adota a estratégia de divisão e conquista.

  • Gabarito D

    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
1306462
Banca
CESPE / CEBRASPE
Órgão
ANATEL
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

No que diz respeito aos conceitos e fundamentos de lógica de programação, julgue o item seguinte.


Por característica, o algoritmo quicksort apresenta melhor desempenho que o merge sort.

Alternativas
Comentários
  • Não é possível afirmar nada nessa questão, pois não temos entradas de dados, não temos uma entrada para comparar os dois algoritmos no melhor e pior caso. Dessa forma a afirmativa é errada.

  • Errado,

    Caracteristica Quicksort: Complexidade de tempo: θ(n log2 n)  Complexidade de espaço: θ(log2 n) .  Caracteristica Mergesort: Complexidade de tempo: Θ(n log2 n) Complexidade de espaço: Θ(n)
  • Entendi, por "característica"  ganha na complexidade de espaço.

    Mas ai toda a internet fala que quicksort é mais rápido que mergesort. Ai fica difícil!

    https://www.quora.com/Why-is-quicksort-considered-to-be-better-than-merge-sort

  • Acredito que está errado, pois, de acordo com a wikipedia, o merge sort no pior caso é  O(nlog n ) enquanto que o quick é O(n^2)

  • ERRADO

     

    Algoritmo        Melhor caso    Pior caso
    ------------------------------------------------------
    Merge Sort      nlogn              nlogn
    ------------------------------------------------------
    Quick Sort       nlogn               n2
    ------------------------------------------------------
     

    O algoritmo Quick Sort em seu pior caso, apresenta "n2", e na ordem de eficiencia "n2" é menos eficiente do que "nlogn", que é o pior caso do Merge Sort, abaixo vou colocar a ordem de prioridade para melhor entendimento:

     

    CONSTANTE  | LOGARITMO | LINEAR    | NLOGN  | quadrática    |cúbica | EXPONENCIAL
    1                      | logn                | n             | nlogn     | n2                  |n3        | an

  • o problema é esse termo "característica". Na prática, o quicksort é melhor, mas ao pé da letra | característica, o merge sobressai

  • Força Guerreiro!!!!!!


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

Os algoritmos de ordenação por seleção (SS) e bubble sort (BS) foram usados para ordenar a sequência 31, 11, 23, 17, 13 de forma crescente.

Quantas trocas e comparações foram realizadas, respectivamente, por cada um?

Alternativas
Comentários
  • http://www.devmedia.com.br/entendendo-o-algoritmo-bubble-sort-em-java/24812

  • Resolução:

    http://www.umexerciciotododia.com.br/2015/09/algoritmos-de-ordenacao-selection-sort.html

  • a-

    bubble sort = 7 comparacoes

    import java.util.Arrays;

    public class Q {

       public static void main(String[] args) {

          // TODO Auto-generated method stub

          int i,j,aux, comp =0;

          int arr[] = new int [] {31, 11, 23, 17, 13};

          for (i=0; i <arr.length-1; i++) {

             for (j=0; j <arr.length-i-1; j++) {

                if (arr[j] > arr[j+1]) {

                   comp++;

                   aux = arr[j];

                   arr[j] = arr[j+1];

                   arr[j+1] = aux;

                }

             }

          }

          System.out.println(Arrays.toString(arr));

          System.out.println(comp);

       }

    }

  • Força Guerreiro!!!!!!


ID
1379773
Banca
FEPESE
Órgão
MPE-SC
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Observe abaixo uma implementação em C# de um algoritmo de ordenação

public class InsertionSort
  {
       public int[] iSort(int[] input)
      {
          for (int i = 1; i < input.Length; i++)
         {
              int key = input[i];
              int j = i - 1;
              while (j >= 0 && input[j] > key)
              {
                   input[j + 1] = input[j];
                   j--;
              }
              input[j + 1] = key;
          }
          return input;
      }
}

A implementação realiza um procedimento de ordenação sobre um vetor de números inteiros. Ao final da ordenação, o vetor ordenado é apresentado no monitor.

Assinale a alternativa que apresenta o método de ordenação utilizado.

Alternativas
Comentários
  • A resposta estava em " public class InsertionSort " kkkkkkkkkkkkkk

  • Força Guerreiro!!!!!!


ID
1389496
Banca
CESPE / CEBRASPE
Órgão
SEGESP-AL
Ano
2013
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Julgue o item a seguir, com relação a estruturas de dados.

O método quicksort é semelhante ao bubble sort, pois opera comparando cada elemento de um vetor com seu sucessor e, caso este esteja fora de ordem, o quicksort auxilia a troca da posição. Dessa forma, em ambos os métodos, é grande o número de comparações e trocas para execução de vetores extensos.

Alternativas
Comentários
  • quicksort - Faz, sucessivamente, partições em subvetores, de forma que a parte esquerda contenha sempre elementos menores ou iguais aos da direita.

    bubble sort - Percorre a tabela do início ao fim, sem interrupção, trocando de posição 2 elementos consecutivos, sempre que se apresentarem fora de ordem.

     

     

     

     

     

    Gab. E

  • Isso!! No quick, deve-se selecionar o pivô (essa escolha pode ser feita de varias formas) e todos os elementos menores que ele devem ser "jogados" p o lado esquerdo, enquando os maiores "jogados para a direita". Isso gera duas listas desordenadas, mas coloca o pivô no seu local correto :) basimanete, divide pra consquistas e tem o caso base da lista de um elemnto, que será sempre ordenada.

    a bolha compara N vezes cada elemnto com seu vizinho e troca se adequado.

  • Gabarito Errado

    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). 
     

    BubbleSort - pouco eficiente para ordenar grandes quantidades de informações. Compara posições adjacentes e vai ordenando o vetor. Elemento da posição i é comparado com o elemento da posição i + 1.

     

     

     

     

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

  • Força Guerreiro!!!!!!


ID
1420963
Banca
Marinha
Órgão
CP-PCNS
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Observe o algoritmo a seguir.

mudou : = V; n' : = n ; guarda : = n
enquanto mudou faça
      j : = 1; mudou : = F
      enquanto j < n ' faça
           se A[ j ].chave > A[ j + 1].chave então
               trocar (A [ j ] , A [ j + 1]
               mudou : = V
               guarda : = j
                j : = j + 1
n' : = guarda

O algoritmo acima descreve que método de ordenação?

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

     

    O algoritmo do Bubble Sort percorre o vetor diversas vezes, comparando os elementos 2 a 2, e a cada passagem fazer flutuar para o topo o maior elemento da sequência. 


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

Considere o seguinte algoritmo de ordenação de elementos em uma lista:

1. Escolha um elemento que será chamado o pivot da lista.
2. Reordene a lista de tal forma que os elementos menores que o pivot venham antes dele e os elementos maiores ou iguais ao pivot venham depois dele. Essa operação é chamada de partição, e cria duas sublistas:
a. a de menores que o pivot e
b. a de maiores ou iguais ao pivot.
3. Aplique recursivamente os passos 1 e 2 às sublistas de menores e maiores que o pivot.

O algoritmo acima corresponde ao

Alternativas
Comentários
  • QuickSort: Esse algoritmo divide um conjunto de itens em conjuntos menores, que são ordenados de forma independente, e depois os resultados são combinados para produzir a solução de ordenação do conjunto maior. Trata-se, portanto, de um algoritmo do tipo Divisão-e-Conquista i.e., repartindo os dados em subgrupos, dependendo de um elemento chamado pivô. Talvez seja o método de ordenação mais utilizado! Isso ocorre porque quase sempre ele é significativamente mais rápido do que todos os demais métodos de ordenação baseados em comparação. Ademais, suas características fazem com que ele, assim como o MergeSort, possa ser facilmente  paralelizado. Ele também pode ser adaptado para realizar ordenação externa (QuickSort Externo). Neste método, a lista é dividida em parte esquerda e parte direita, sendo que os elementos da parte esquerda são todos menores que os elementos da parte direita. Essa fase do processo é chamada de partição. Em seguida, as duas partes são ordenadas recursivamente (usando o próprio QuickSort). A lista está portanto ordenada corretamente! Uma estratégia para fazer a partição é escolher um valor como pivô e então colocar na parte esquerda os elementos menores ou iguais ao pivô e na parte direita os elementos maiores que o pivô – galera, a escolha do pivô é crítica! Em geral, utiliza-se como pivô o primeiro elemento da lista, a despeito de existirem maneiras de escolher “melhor” pivô.
    Esse algoritmo é um dos métodos mais rápidos de ordenação, apesar de às vezes partições desequilibradas poderem conduzir a uma ordenação lenta. A eficácia do método depende da escolha do pivô mais adequado ao conjunto de dados que se deseja ordenar. Alguns, por exemplo, utilizam a mediana de três elementos para otimizar o algoritmo.

  • Gabarito A

    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
1452565
Banca
CESPE / CEBRASPE
Órgão
TRE-GO
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Com referência à organização de arquivos, julgue o próximo item.

Em cada passo do método de ordenação conhecido como quick sort, cada elemento do vetor é comparado com o seu sucessor. Nessa comparação, os dois elementos comparados serão trocados de posição caso estejam fora de ordem

Alternativas
Comentários
  • O Quicksort adota a estratégia de divisão e conquista. A estratégia consiste em rearranjar as chaves de modo que as chaves "menores" precedam as chaves "maiores". Em seguida o Quicksort ordena as duas sublistas de chaves menores e maiores recursivamente até que a lista completa se encontre ordenada. 3 Os passos são:

    1. Escolha um elemento da lista, denominado pivô;
    2. Rearranje a lista de forma que todos os elementos anteriores ao pivô sejam menores que ele, e todos os elementos posteriores ao pivô sejam maiores que ele. Ao fim do processo o pivô estará em sua posição final e haverá duas sublistas não ordenadas. Essa operação é denominada partição;
    3. Recursivamente ordene a sublista dos elementos menores e a sublista dos elementos maiores;

  • Na questão, o Cespe descreveu o Bubble Sort.

  • Gabarito Errado

    BubbleSort - pouco eficiente para ordenar grandes quantidades de informações. Compara posições adjacentes e vai ordenando o vetor. Elemento da posição i é comparado com o elemento da posição i + 1.
     

     

     

     

     

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

  • e-

    quick sort == pivo & partição

  • Força Guerreiro!!!!!!


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

O seguinte trecho de código em Java foi copiado de uma classe que implementa um método de ordenação de vetores.

1.    for ( int i=0; i < n; i ++) {
2.            for (int j=1; j < (n-i) ; j ++) {
3.                   if (intArray[ j-1] > intArray[ j ] ) {
4.                        temp = intArray[ j-1] ;
5.                         intArray[ j-1] = intArray[ j ] ;
6.                         intArray[ j ] = temp ;
7.                   }
8.            }
9.    }

Para expressar propriedades desse código, na linguagem da lógica proposicional, considere as proposições lógicas p, q e r e as seguintes interpretações:

• p é verdadeiro se e somente se i = 0
• q é verdadeiro se e somente se j ≠ (n-i)
• r é verdadeiro se e somente se intArray[j-1] > intArray[j]

Nesse contexto, os comandos de atribuição presentes neste trecho de código (linhas 4, 5 e 6) serão executados para:

Alternativas
Comentários
  • Posso discordar? Eu pensei igual a vcS, mas fui em outro raciocínio.

    A expansão da telefonia celular, impulsionada pela privatização do sistema TELEBRAS , em 1998, está entre as maiores conquistas da economia brasileira nas últimas duas décadas.

    Veja que acima o adjunto adverbial está na sua ordem, no fim da oração, assim, não há a nescessidade de vírgulas pois é proibida! ( impulsionada pela privatização do sistema TELEBRAS , em 1998, ) nessa passagem que é tida como certa o adjunto vem no fim, mas não pode vírgula quando o adj adv vem na sua posição final, pois gera ambiguidade com termo anterior e posterior.

    perceba tb que esse adjunto adverbial está tanto para oração anterior como posterior, segundo esse raciocínio a ad. ADV está tanto pra primeira quanto segunda oração.

    A expansão da telefonia celular, impulsionada pela privatização do sistema TELEBRAS , em 1998, está entre as maiores conquistas da economia brasileira nas últimas duas décadas.

    pessoal se alguém saber me explicar meu erro fico honrado de ser avisado o inbox. Agradeço.

  • Posso discordar? Eu pensei igual a vcS, mas fui em outro raciocínio.

    A expansão da telefonia celular, impulsionada pela privatização do sistema TELEBRAS , em 1998, está entre as maiores conquistas da economia brasileira nas últimas duas décadas.

    Veja que acima o adjunto adverbial está na sua ordem, no fim da oração, assim, não há a nescessidade de vírgulas pois é proibida! ( impulsionada pela privatização do sistema TELEBRAS , em 1998, ) nessa passagem que é tida como certa o adjunto vem no fim, mas não pode vírgula quando o adj adv vem na sua posição final, pois gera ambiguidade com termo anterior e posterior.

    perceba tb que esse adjunto adverbial está tanto para oração anterior como posterior, segundo esse raciocínio a ad. ADV está tanto pra primeira quanto segunda oração.

    A expansão da telefonia celular, impulsionada pela privatização do sistema TELEBRAS , em 1998, está entre as maiores conquistas da economia brasileira nas últimas duas décadas.

    pessoal se alguém saber me explicar meu erro fico honrado de ser avisado o inbox. Agradeço.

  • Força Guerreiro!!!!!!


ID
1470826
Banca
UNIRIO
Órgão
UNIRIO
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Sobre a análise de algoritmos, é CORRETO afirmar que

Alternativas
Comentários
  • Gabarito B?  Oi? 

    Bubble Sort algoritmo por inserção? É ordenação por troca! 

    Pra mim a única correta é a letra A! Alguém pode ajudar?

  • Amigo Christian, Leia com calma!! Bubble-Sort E o algorítimo por inserção ..... "em média"...fazem sim o mesmo número de comparações...0(n^2).

  • Tabela de complexidade dos algoritmos de ordenação : https://d2m498l008ebpa.cloudfront.net/2016/12/compara--o-entre-os-m-todos-de-ordena--o.png

  • Ambos tem complexidade O(n^2);

  • Gabarito B

    BUBBLE SORT ---> complexidade pior n2.

    INSERÇÃO DIRETA ---> complexidade pior n2 e complexidade melhor n.

     

     

     

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

  • a) o algoritmo MERGE-SORT é um algoritmo que recebe como entrada duas listas ordenadas e retorna a junção ordenada delas.

    Incorreta, na verdade é UMA LISTA que é dividida em duas listas, NÃO NECESSARIAMENTE ORDENADAS

    b) o BUBBLE-SORT e o algoritmo de ordenação por inserção fazem, em média, o mesmo número de comparações.

    Correta, gabarito da questão, os colegas abaixo já explicaram o motivo!

    .

    c) o algoritmo BUBBLE-SORT é um exemplo de algoritmo de ordenação que utiliza a técnica dividir para conquistar.

    Incorreta, BUBBLE-SORT utilizar a 'técnica' para o topo o maior, quem utiliza a técnica dividir para conquistar são os algoritmos merge-sort e quick-sort.

    .

    d) tanto o algoritmo QUICKSORT quanto o de ordenação por inserção tem complexidade O(n × log n).

    Incorreta, os dois algoritmos possuem distintas complexidades, porém ambos possuem a complexidade O(n²) no pior caso.

    .

    e) o desempenho na execução do algoritmo QUICK-SORT independe da escolha do pivô.

    Incorreta, a escolha do pivô no quick-sort é FUNDAMENTAL para determinar a complexidade do algoritmo

  • Força Guerreiro!!!!!!


ID
1474780
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2010
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O algoritmo de ordenação de pior complexidade temporal no caso médio, dentre os que se seguem, é

Alternativas
Comentários
  • Gabarito B

    BubbleSort - pouco eficiente para ordenar grandes quantidades de informações. Compara posições adjacentes e vai ordenando o vetor. Elemento da posição i é comparado com o elemento da posição i + 1. 
     

     

     

     

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

  • algo____________best___________average___________worst

    Quicksort  Ω(n log(n))___________  Θ(n log(n))___________  O(n^2)  

    Mergesort  Ω(n log(n)) ___________ Θ(n log(n)) ___________ O(n log(n))  

    Timsort  Ω(n) ___________ Θ(n log(n)) ___________ O(n log(n))  

    Heapsort  Ω(n log(n))___________  Θ(n log(n)) ___________ O(n log(n))

    Bubble Sort  Ω(n) ___________ Θ(n^2) ___________ O(n^2)

    Insertion Sort  Ω(n) ___________ Θ(n^2) ___________ O(n^2)

    Selection Sort  Ω(n^2) ___________ Θ(n^2) ___________ O(n^2)

    Tree Sort  Ω(n log(n)) ___________ Θ(n log(n)) ___________ O(n^2)

    Shell Sort  Ω(n log(n)) ___________ Θ(n(log(n))^2) ___________ O(n(log(n))^2)

    Bucket Sort  Ω(n+k) ___________ Θ(n+k) ___________ O(n^2)

    Radix Sort  Ω(nk) ___________ Θ(nk) ___________ O(nk)

    Counting Sort  Ω(n+k) ___________ Θ(n+k) ___________ O(n+k)

    Cubesort  Ω(n)  ___________Θ(n log(n)) ___________ O(n log(n))  


ID
1478404
Banca
IDECAN
Órgão
INMETRO
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Um  bom  exemplo  de  resolução  de  problemas  em  computadores  é  a  utilização  de  algum  algoritmo  de  ordenação.  Ordenar corresponde ao processo de rearranjar um conjunto de objetos em ordem crescente ou decrescente. Um dos  principais objetivos da ordenação é facilitar a recuperação posterior dos itens ordenados. Na escolha da utilização de  determinado algoritmo, uma característica a ser considerada é o tempo de execução do pior caso. Assinale, a seguir,  o algoritmo de ordenação com tempo de execução do pior caso em: θ(n²). 

Alternativas
Comentários
  • ORDENAÇÃO POR INSERÇÃO:
    DEFINIÇÃO:
    A característica comum aos métodos de ordenação por inserção é que eles ordenam um vetor pela inserção de cada um dos elementos em sua posição correta. O algoritmo de ordenação por inserção mais simples é o de inserção direta (inserção simples).  Outro algoritmo utilizado é o ordenação shell  ou de incremento decrescentes, que possui um tempo de ordenação inferior ao primeiro e trabalha com várias partições ao mesmo tempo.


    Fonte: estrutura de dados

    Editora: SENAC

  • Gabarito C

    INSERÇÃO DIRETA ---> complexidade pior n2 e complexidade melhor n.

     

     

     

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

  • Insertion sort

    Melhor Caso O(n)

    Pior Caso O(n²)

  • Força Guerreiro!!!!!!


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

Em relação às listas de prioridades, qual das seqüências abaixo corresponde a um HEAP?

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

     

    Heap é uma árvore-binária (ou seja, cada nó possui dois filhos) onde cada nó possui um determinado valor e onde o valor do pai é sempre maior ou igual que o dos filhos (sendo chamada de max heap) ou sempre menor ou igual que o dos filhos (sendo chamada de min heap). A raiz, portanto, deve ser o maior elemento.

     

    Uma Heap pode ser representada simplesmente por um array. Para ir preenchendo o array, imagine que se vá preenchendo nível a nível (nos níveis da árvore), preenchendo cada nível da esquerda para a direita.

     

    Nessa questão, resolvi fazendo o caminho inverso: construí a árvore a partir do array e verifiquei se satisfazia as condições da Heap.

     

    A - Raiz: 184

         Nível 1: 170 e 180

         Nível 2: 94 e 182 (filhos de 170) => errado, pois 182 é maior que 170

     

    B - Raiz: 95 => errado, pois o maior elemento do array é 98, que deveria ser a raiz

     

    C - Raiz: 92

          Nível 1: 85 e 90

          Nível 2: 47 e 91 (filhos de 85) => errado, pois 91 é maior que 85

     

    D - Raiz: 33

          Nível 1: 32 e 28

          Nível 2: 31 e 26 (filhos de 32) e 29 e 25 (filhos de 28) => errado, pois 29 é maior que 28

     

    E - Raiz: 190

          Nível 1: 120 e 156

          Nível 2: 78 e 56 (filhos de 120) e 132 e 140 (filhos de 156)

          Nível 3: 66 (filho de 78)


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

Em relação aos Algoritmos de ordenação, assinale a opção correta.

Alternativas
Comentários
  • bubble sort, ou ordenação por flutuação (literalmente "por bolha"), é um algoritmo de ordenação dos mais simples. A ideia é percorrer o vector diversas vezes, a cada passagem fazendo flutuar para o topo o maior elemento da sequência.



    Quicksort adota a estratégia de divisão e conquista. A estratégia consiste em rearranjar as chaves de modo que as chaves "menores" precedam as chaves "maiores". Em seguida o Quicksort ordena as duas sublistas de chaves menores e maiores recursivamente até que a lista completa se encontre ordenada. 

     Os passos são:

    - Escolha um elemento da lista, denominado pivô;

    - Rearranje a lista de forma que todos os elementos anteriores ao pivô sejam menores que ele, e todos os elementos posteriores ao pivô sejam maiores que ele. Ao fim do processo o pivô estará em sua posição final e haverá duas sublistas não ordenadas. Essa operação é denominada partição;

    - Recursivamente ordene a sublista dos elementos menores e a sublista dos elementos maiores;



    merge sort, ou ordenação por mistura, é um exemplo de algoritmo de ordenação do tipo dividir-para-conquistar.

    Sua ideia básica consiste em Dividir(o problema em vários sub-problemas e resolver esses sub-problemas através da recursividade) e Conquistar(após todos os sub-problemas terem sido resolvidos ocorre a conquista que é a união das resoluções dos sub-problemas).Como o algoritmo do Merge Sort usa a recursividade em alguns problemas esta técnica não é muito eficiente devido ao alto consumo de memória e tempo de execução.

    Os três passos úteis dos algoritmos dividir-para-conquistar, ou divide and conquer, que se aplicam ao merge sort são:

    - Dividir: Dividir os dados em subsequências pequenas;

    - Conquistar: Classificar as duas metades recursivamente aplicando o merge sort;

    - Combinar: Juntar as duas metades em um único conjunto já classificado.

  • O gabarito é a letra A.

     

    O Bubble Sort percorre várias vezes o vetor de maneira sequencial. Em cada passo, compara cada elemento no vetor com o seu sucessor (p[i] com p[i+1]) e troca o conteúdo das posições em análise, caso não estejam na ordem desejada. Ao final da primeira iteração, apesar do vetor não estar ordenado ainda, o maior elemento fica na última posição. 


ID
1562026
Banca
UFPel-CES
Órgão
UFPEL
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Que nome recebem os métodos ou algoritmos que efetuam ordenação de dados por troca?

Alternativas
Comentários
  • Gabarito está B.

     

    Bubblesort é por Troca mesmo, correto.

     

    Mas Quicksort não é por Divisão e Conquista?

  • Sávio, ele trabalha sim como um "dividir para conquistar", no entanto o quicksort, através de um pivot, troca os valores do vetor para a obtensão de 2 vetores: um menor ou igual ao pivot e outro maior que o pivot.

  • Gabarito B

    Oi amigão Sávio !

    O 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
1588657
Banca
COSEAC
Órgão
UFF
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Em relação aos algoritmos de ordenação, é correto afirmar que:

Alternativas
Comentários
  • Bubble Sort

    Essa algoritmo varre-se a lista trocando-se de posição os elementos adjacentes fora de ordem. Varre-se a lista até que não haja mais trocas e, neste caso, a lista está ordenada.

     

    É de baixo desempenho

     

    É um algoritmo de ordenação por troca  de método simples

     

     

     

    Letra D

     

     

  • Gabarito D

    BubbleSort - pouco eficiente para ordenar grandes quantidades de informações. Compara posições adjacentes e vai ordenando o vetor. Elemento da posição i é comparado com o elemento da posição i + 1.
     

     

     

     

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

  • Força Guerreiro!!!!!!


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

A respeito de análise de algoritmos, programação estruturada e orientada a objetos e estruturas de dados, julgue o item a seguir.


O método de ordenação conhecido como Bubble Sort apresenta pouca adaptabilidade, visto que nele a quantidade de operações permanece praticamente constante mesmo após o ordenamento das chaves.

Alternativas
Comentários
  • O algoritmo Bubble Sort percorre todo o vetor diversas vezes, por isso, não é recomendado o uso dele para aplicações que requerem velocidade ou trabalhem com uma grande quantidade de dados.

  • Se já estiver ordenado, o bubble vai ser bem rápido, n?

  • Walking Nerd, O bubble sort sempre executa em O(n). Ele sempre irá executar n vezes, mesmo se o array já estiver ordenado.

  • Raimundo Junior

    A complexidade do Bubble Sort é O(n^2) e não O(n). Ele vai fazer dois loops aninhados.

  • Gabarito Certo

    bubble sort, ou ordenação por flutuação (literalmente "por bolha"), é um algoritmo de ordenação dos mais simples. A ideia é percorrer o vector diversas vezes, e a cada passagem fazer flutuar para o topo o maior elemento da sequência. Essa movimentação lembra a forma como as bolhas em um tanque de água procuram seu próprio nível, e disso vem o nome do algoritmo.

    Compara posições adjacentes e vai ordenando o vetor. Elemento da posição i é comparado com o elemento da posição i + 1.
    Complexidade pior n2.
     

     

     

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

  • Bubble Sort 

     

     O algoritmo de ordenação bubble sort é um método simples de ordenação por troca.
     O vetor é percorrido do inicio ao fim onde cada elemento é comparado com o elemento posterior.
     Caso o elemento posterior seja menor, ocorre uma troca entre os dois elementos.
    Esse procedimento garante que o maior elemento ficará no final do vetor.
     Baixo desempenho para grandes quantidades de informações.

     

    Fonte: Itnerante

  • Se o bubble já tiver ordenado, após o primeiro loop de comparação, ele não precisará entrar no loop novamente para iniciar uma nova fase de comparação. Ou precisa?

  • Alguém poderia me indicar um livro ou site de onde são retiradas as questões sobre este tema, pois noto que a cespe somente pergunta conceito e funcionalidades sobre Busca e ordenação.

  • não é verdade, em um vetor ordenado com aquela otimização de testar se houve troca o bubblesort rodaria uma única passagem pelo vetor

  • Força Guerreiro!!!!!!

  • O algoritmo BubbleSort possui dois loops aninhados, logo a complexidade dele no melhor, médio e pior caso sempre será o(n^2), por isso a questão é feliz ao utilizar o termo "pouca adaptabilidade".

    Independente se o vetor estiver ordenado, serão executados dois laços de repetição: um para controlar a quantidade de vezes que o vetor será ordenado (o número de repetições será do tamanho do vetor) e outro mais interno para ordenar o vetor de fato (utilizado para realizar as comparações do início ao final do vetor).

    O laço mais interno fará as comparações até o final do vetor, percorrendo ele N vezes, sendo N o tamanho do vetor.


ID
1688638
Banca
UFRRJ
Órgão
UFRRJ
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Em seu pior caso, o tempo de ordenação do algoritmo Quicksort sobre um arranjo de n números é igual a

Alternativas
Comentários
  • O pior caso de particionamento ocorre quando o elemento pivô divide a lista de forma desbalanceada, ou seja, divide a lista em duas sublistas: uma com tamanho 0 e outra com tamanho n - 1 (no qual n se refere ao tamanho da lista original). Isso pode ocorrer quando o elemento pivô é o maior ou menor elemento da lista, ou seja, quando a lista já está ordenada, ou inversamente ordenada.

    (...)

    o algoritmo terá tempo de execução igual à θ(n²).

     

     

    https://pt.wikipedia.org/wiki/Quicksort

  • tem que decorar amiguinhos

     

     

    2017

    O algoritmo QuickSort usa uma técnica conhecida por divisão e conquista, onde problemas complexos são reduzidos em problemas menores para se tentar chegar a uma solução. A complexidade média deste algoritmo em sua implementação padrão e a complexidade de pior caso são, respectivamente,

     a) O(n-1) e Ο(n³).

     b) Ο(n²) e Ο(n log n²).

     c) O(n²) e O(n³).

     d) Ο(n) e Ο(n²).

     e) Ο(n log n) e Ο(n²).

     

  • Gabarito A

    QUICK SORT ---> complexidade no pior caso n2 e complexidade no melhor caso nlogn.
     

    Vamos na fé !

     

     

     

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

  • a-

    Quicksort - Neste método, a lista é dividida em parte esquerda e parte direita, sendo que os elementos da parte esquerda são todos menores do que os elementos da parte direita. Em seguida, as duas partes são ordenadas recursivamente.

  • Força Guerreiro!!!!!!


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

Com relação aos algoritmos, analise as afirmativas abaixo.

I - Algoritmo é qualquer procedimento computacional bem definido que toma algum valor ou conjunto de valores como entrada e produz algum valor ou conjunto de valores como saída.

II - Para pequenas entradas, os algoritmos de ordenação por inserção possuem tempo de execução mais rápido que algoritmos de ordenação por intercalação.

III- Bubblesort é um algoritmo de ordenação que funciona permutando repetidamente elementos adjacentes que estão fora de ordem.

Assinale a opção correta. 

Alternativas
Comentários
  • I- CERTO. Retirado do livro https://books.google.com.br/books?id=gGGME0t7dwcC&pg=PA57&lpg=PA57&dq=Algoritmo+%C3%A9+qualquer+procedimento+computacional+bem+definido+que+toma+algum+valor+ou+conjunto+de+valores+como+entrada+e+produz+algum+valor+ou+conjunto+de+valores+como+sa%C3%ADda&source=bl&ots=aPZw7SoWGN&sig=UaL_IsYAWhiCs92VuSyMaAFLyDI&hl=pt-BR&sa=X&ved=0CBwQ6AEwAGoVChMI1LyC-JKSyQIVwRyQCh3NPguJ#v=onepage&q=Algoritmo%20%C3%A9%20qualquer%20procedimento%20computacional%20bem%20definido%20que%20toma%20algum%20valor%20ou%20conjunto%20de%20valores%20como%20entrada%20e%20produz%20algum%20valor%20ou%20conjunto%20de%20valores%20como%20sa%C3%ADda&f=false

    II- CERTO. Essa realmente fiquei na dúvida. Pequenas entradas é muito relativo. De acordo com Ziviani, o insertion sort é o método de ordenação mais interessante para arquivos com menos do que 20 elementos. Vamos considerar que a pequena entrada entra no melhor caso, que é O(n). Logo, essa afirmativa será verdadeira, visto que o algoritmo de ordenação por intercalação (mergesort) tem seu melhor caso nlogn.

    III-CERTO.


ID
1770331
Banca
CESPE / CEBRASPE
Órgão
TRE-MT
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Acerca de organização de arquivos e métodos de acesso, assinale a opção correta.

Alternativas
Comentários
  • a) ERRADA. Para realizar uma pesquisa binária os dados devem estar ordenados.

    b) ERRADA. 

    Organizar um arquivo significa relacionar (mapear) os requisitos de armazenamento de uma aplicação

    (dados/informações) com as características ou requisitos físicos de determinado dispositivo de armazenamento

    c) CORRETA.

    d) ERRADA. Para a inserção de dados em um arquivo ordenado, tem que se fazer primeiro uma pesquisa para saber aonde vai colocar esse registro, depois a inseri-lo. Já a busca, você só precisa fazer o primeiro passo (pesquisa).

    e) ERRADA. A leitura é mais rápida, pois pode-se fazer uma pesquisa binária.

  • A)ERRADA. Segundo Navathe(2011,p.406),"Organização de arquivo HEAP(NÃO ORDENADO) usa Varredura sequencial(pesquisa linear); Organização de arquivo ORDENADO usa varredura sequencial ou pesquisa binária;"{PARAFRASEADO POR MIM}

    _______________

    B)ERRADA. Segundo Navathe(2011,p.402),"Uma organização de arquivo refere-se à organização dos dados de um arquivo em registros,blocos e estruturas de acesso; isso inclui o modo como registros e blocos são colocados no meio de armazenamento e interligados."

    ________________

    C)CERTA. RESPOSTA NA PÁGINA 403 DO LIVRO.

    _______________

    D)ERRADA.  Segundo Navathe(2011,p.403),"No entanto, procurar um registro usando qualquer condição de pesquisa envolve uma pesquisa linear pelo bloco de arquivo por bloco-UM PROCEDIMENTO DISPENDIOSO."

    ______________

    E)ERRADA. Segundo Navathe(2011,p.404),"Primeiro, a leitura dos registros na ordem dos valores da chave de ordenação torna-se extremamente eficiente porque nenhuma classificação é necessária."

    _______________

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

  • Força Guerreiro!!!!!!


ID
1864906
Banca
CESPE / CEBRASPE
Órgão
TRT - 8ª Região (PA e AP)
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Assinale a opção que apresenta o algoritmo de ordenação com o pior desempenho, considerando-se um vetor de 100 elementos, com valores inteiros ordenados em ordem inversa ao do algoritmo de ordenação.

Alternativas
Comentários
  • Algoritmo de ordenação, em ciência da computação, é um algoritmo que coloca os elementos de uma dada sequência em uma certa ordem. Em outras palavras efetua sua ordenação completa ou parcial. O objetivo da ordenação é facilitar a recuperação dos dados de uma lista.

     

    Alguns algoritmos de ordenação para serem estudados que são:

     

    - Bubble Sort: é o algoritmo mais simples, mas o menos eficientes. Neste algoritmo cada elemento da posição i será comparado com o elemento da posição i + 1, ou seja, um elemento da posição 2 será comparado com o elemento da posição 3. Caso o elemento da posição 2 for maior que o da posição 3, eles trocam de lugar e assim sucessivamente. Por causa dessa forma de execução, o vetor terá que ser percorrido quantas vezes que for necessária, tornando o algoritmo ineficiente para listas muito grandes.

     

    - Selection Sort: Este algoritmo é baseado em se passar sempre o menor valor do vetor para a primeira posição (ou o maior dependendo da ordem requerida), depois o segundo menor valor para a segunda posição e assim sucessivamente, até os últimos dois elementos.

     

    - Quick Sort: é o algoritmo mais eficiente na ordenação por comparação. Nele se escolhe um elemento chamado de pivô, a partir disto é organizada a lista para que todos os números anteriores a ele sejam menores que ele, e todos os números posteriores a ele sejam maiores que ele. Ao final desse processo o número pivô já está em sua posição final. Os dois grupos desordenados recursivamente sofreram o mesmo processo até que a lista esteja ordenada.

     

    - Insertion Sort: é um algoritmo simples e eficiente quando aplicado em pequenas listas. Neste algoritmo a lista é percorrida da esquerda para a direita, à medida que avança vai deixando os elementos mais à esquerda ordenados.

     

    Fonte: http://www.devmedia.com.br/algoritmos-de-ordenacao-analise-e-comparacao/28261

     

  • Animações dos algorítmos de ordenação para melhor visualização: 

    Demais:

    http://www.nicholasandre.com.br/sorting/

    Radix:

    https://www.cs.usfca.edu/~galles/visualization/RadixSort.html

  • 2017

    No pior caso, quando o vetor está inversamente ordenado, o algoritmo booble sort executa n2 operações para a ordenação de um vetor de n elementos.

    certa

     

  • Força Guerreiro!!!!!!


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

Considere um array R que contém 1.000.000 de chaves ordenadas.

Assinale o número máximo de acessos a R necessários para encontrar uma determinada chave. 

Alternativas
Comentários
  • Como tenho um array ordenado, posso usar a busca binária. A complexidade da busca binária é log n.

    Se vc sabe fazer log n = 1000000, blz. Senão, vai por aproximação mesmo

    2^10 = 1024

    2^20 = 2^10 * 2^10 = 1024 * 1024 = 1.048.576 -> este é o mais próximo de 1.000.000

  • boa explicação. Obrigado

  • Obrigado Rasana pela explicação !!!

  • Sem saber o o algoritmo de busca fica difícil.

  • Força Guerreiro!!!!!!


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

Assinale a opção que apresenta o algoritmo de ordenação cujo tempo de execução do pior caso é Θ(n2) sobre um arranjo de entrada de n números, porém é normalmente o mais eficiente para ordenação, devido a sua ótima complexidade de tempo na média e no melhor caso: Θ(n.lgn), e também apresenta a vantagem da ordenação local e que funciona bem para ambientes de memória virtual. 

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

     

    O quicksort adota a estratégia de divisão e conquista. A estratégia consiste em rearranjar as chaves de modo que as chaves "menores" precedam as chaves "maiores". Em seguida o quicksort ordena as duas sublistas de chaves menores e maiores recursivamente até que a lista completa se encontre ordenada. Os passos são:

     

    1) Escolha um elemento da lista, denominado pivô. 

     

    2) Rearranje a lista de forma que todos os elementos anteriores ao pivô sejam menores que ele, e todos os elementos posteriores ao pivô sejam maiores que ele. Ao fim do processo o pivô estará em sua posição final e haverá duas sublistas não ordenadas. Essa operação é denominada partição. 

     

    3) Recursivamente ordene a sublista dos elementos menores e a sublista dos elementos maiores. 

     

    4) A base da recursão são as listas de tamanho zero ou um, que estão sempre ordenadas. O processo é finito, pois a cada iteração pelo menos um elemento é posto em sua posição final e não será mais manipulado na iteração seguinte.

  • A) QUICKSORT.

    • Melhor caso: O(n log n)
    • Médio caso: O(n log n)
    • Pior caso: O(n^2)

    B) HEAPSORT

    • Melhor caso: O(n log n)
    • Médio caso: O(n log n)
    • Pior caso: O(n log n)

    GABARITO: A


ID
2034244
Banca
CESPE / CEBRASPE
Órgão
TCE-PA
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A respeito de algoritmos e estruturas de dados, julgue o próximo item.

O algoritmo de ordenamento por inserção tem o menor número de trocas quando o vetor está ordenado de forma inversa à ordem do procedimento.

Alternativas
Comentários
  • o correto seria forma direta

  • Complementando:

     

    O algoritmo de inserção direta é mais eficiente se os elementos a serem ordenados já estiverem próximos de sua ordem final de classificação.

  • http://www.devmedia.com.br/algoritmos-de-ordenacao-analise-e-comparacao/28261

  • ERRADA. O algoritmo de ordenamento por inserção tem o maior (complexidade O(n²)) número de trocas quando o vetor está ordenado de forma inversa à ordem do procedimento.

  • Gabarito Errado

    Muito bom o comentário do meu amigo Massao.

     

     

     

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

  • Força Guerreiro!!!!!!


ID
2070691
Banca
FUNRIO
Órgão
IF-PA
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Quantas comparações e trocas de posição ocorrerão se utilizarmos o algoritmo Bubble Sort para ordenar do menor para o maior valor o vetor [60,32,45,5,6,2], respectivamente:

Alternativas
Comentários
  • b-

    comparações em bubble sort segue formato round robin. ou arranjo: n!p!/(n-p)!p! -> 6!2!/(6-2)!2! -> 6!2!/4!2! -> 6.5/2 = 15

  • Resolvi a questão simulando e verificando o número de trocas. Mas já sabendo que o número de comparações depende da implementação do algoritmo.

    .

    Se for seguir este padrão [1], seriam 30 comparações

    Se for seguir este padrão [2], seriam 15 comparações.

    .

    [1] https://www.devmedia.com.br/entendendo-o-algoritmo-bubble-sort-em-java/24812

    [2] https://www.javatpoint.com/bubble-sort-in-java

  • Força Guerreiro!!!!!!


ID
2104981
Banca
FCC
Órgão
Prefeitura de Teresina - PI
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

É importante considerar os diversos tipos de chaves existentes na organização de arquivos, em particular,

Alternativas
Comentários
  • Uma chave é uma seqüência de um ou mais campos em um arquivo.

    Uma chave primária é uma chave que apresenta um valor diferente para cada registro do arquivo, de tal forma que, dado um valor da chave primária, é identificado um único registro do arquivo. Usualmente a chave primária é formada por um único campo.

    Uma chave secundária difere de uma primária pela possibilidade de não possuir um valor diferente para cada registro. Assim, um valor de uma chave secundária identifica um conjunto de registros.

    Chave de acesso é a chave utilizada para identificar o(s) registro(s) desejado(s) em uma operação de acesso a um arquivo.

    Argumento de pesquisa é o valor da chave de acesso em uma operação.

    Chave de um registro é o valor de uma chave primária em um particular registro do arquivo

    Chave de ordenação é a chave primária usada para estabelecer a seqüência na qual devem ser dispostos (física ou logicamente) os registros de um arquivo

     

    fonte:http://www.ufpa.br/sampaio/curso_de_estdados_2/organizacao_arquivos/organizacao_arquivos.htm

  • Força Guerreiro!!!!!!


ID
2286742
Banca
SUGEP - UFRPE
Órgão
UFRPE
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Correlacione os algoritmos internos de ordenação de listas da coluna à esquerda com sua descrição, na coluna à direita.

1) Bubblesort. 

2) Ordenação por Seleção 

3) Ordenação por Inserção

4) Shellsort 

5) 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). 

( ) Encontra-se o menor item do vetor. Troca-se com o item da primeira posição do vetor. Repetem-se essas duas operações com os n − 1 itens restantes, depois com os n − 2 itens, até que reste apenas um elemento. 
( ) Método preferido dos jogadores de cartas. A cada momento existem duas partes na lista: uma ordenada (destino) e outra não ordenada (fonte). Inicialmente a lista destino tem apenas o primeiro elemento, e a fonte os demais elementos. Em cada passo a partir de i=2, seleciona-se o i-ésimo item da lista fonte. Deve-se colocá-lo no lugar apropriado na lista destino, de acordo com o critério de ordenação. 

( ) É uma extensão de um outro algoritmo de ordenação conhecido e permite trocas de elementos distantes um do outro, não necessariamente adjacentes. Os itens separados de h posições são rearranjados. Todo h-ésimo item leva a uma lista ordenada. Tal lista é dita estar h-ordenada. 

( ) Varre-se a lista trocando-se de posição os elementos adjacentes fora de ordem. Varre-se a lista até que não haja mais trocas e, neste caso, a lista está ordenada.

A sequência correta, de cima para baixo, é: 

Alternativas
Comentários
  • Falou em pivot: quick sort

    menor elemento, primeiro n-1 depois n-2: selection sort

    preferido de jogadores de cartas: insertion sort

    elementos distantes: gap do shell sort

    varre trocando adjacentes: bubble sort

  • Excelente questão, serve até como revisão.

  • b-

    tabela

    https://d2m498l008ebpa.cloudfront.net/2016/12/compara--o-entre-os-m-todos-de-ordena--o.png

  • Força Guerreiro!!!!!!


ID
2409223
Banca
FUNDEP (Gestão de Concursos)
Órgão
UFVJM-MG
Ano
2017
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Qual é o tipo de algoritmo de ordenação que tem como princípio percorrer o vetor diversas vezes, a cada passagem fazendo o maior elemento se mover para o final da estrutura?

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

     

    bubble sort é um algoritmo de ordenação dos mais simples. A ideia é percorrer o vector diversas vezes, a cada passagem fazendo flutuar para o topo (final da estrutura) o maior elemento da sequência. No melhor caso, o algoritmo executa operações relevantes, onde representa o número de elementos do vector. No pior caso, são feitas n^2 operações. Como a complexidade desse algoritmo é de ordem quadrática, ele não é recomendado para programas que precisem de velocidade e operem com quantidade elevada de dados.

  • Bubble = Ordenação

  • O bubble sort realiza a comparação entre itens consecutivos, posicionando os elementos de maior valor ao final da estrutura em cada rodada. Isso acontece devido à forma como é feita a ordenação. No caso concreto, imagine que devemos ordernar de forma crescente um vetor com 5 elementos: 4,2,5,3,1.

     

    1ª Rodada [termina quando atingirmos o último elemento]

     

    1º Passo:

    Realiza-se a comparação dos elementos 4 e 2. Como 4 é maior que 2, suas posições são trocadas. Assim, o vetor fica assim:

    2,4,...

     

    2º Passo:

    Em seguida, compara-se os elementos 4 e 5. Como 4 é menor que 5 e encontra-se à esquerda, preserva-se a ordem dos elementos.

     

    3º Passo:

    Compara-se os elementos 5 e 3. Como 5 é maior que 3, suas posições são trocadas. Assim, o vetor fica assim:

    2,4,3...

     

    4º Passo:

    Por fim, compara-se 5 (que ficou à direita no passo anterior) com 1. O resultado é a troca das posições.

    2,4,3,1,5.

     

    Fim da Primeira Rodada! Veja que o maior elemento está no fim da estrutura.

     

    2ª Rodada:

    Nesta rodada, o elemento 4 vai para o final da estrutura (ficando situado antes do elemento 5)

     

    3 ª Rodada:

    Nesta rodada, o elemento 3 vai para o final da estrutura (ficando situado antes dos elementos 4 e 5)

     

    4 ª Rodada:

    Nesta rodada, o elemento 2 vai para o final da estrutura (ficando situado antes dos elementos 3, 4 e 5)

     

    Assim, o vetor estará completamente ordenado conforme abaixo:

    1, 2, 3, 4, 5.

     

  • mas ele nao joga para o final da estrutura, ele joga para a proxima posicao

    e eventualmente o maior numero acaba no final da estrutura

     

    do jeito que ele descreveu deu a impressao que apos a primeira comparacao, o elemento maior ja vai para o final da estrutura

  • Gabarito D

    BubbleSort - compara posições adjacentes e vai ordenando o vetor. Elemento da posição i é comparado com o elemento da posição i + 1.

     

     

     

     

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

  • Força Guerreiro!!!!!!


ID
2409226
Banca
FUNDEP (Gestão de Concursos)
Órgão
UFVJM-MG
Ano
2017
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Qual é o método de ordenação mais eficiente entre os listados a seguir?

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

     

    Mais eficiente - O(n^2) - O(n^3) - O(2^n) - O(n^n) - Menos eficiente

  • Bubble = Ordenação

  • Do mais eficiente para o menos eficiente

    1 -> constante

    log n -> logaritmica

    n -> linear

    n log n -> divisão em subproblemas

    n^2 < n^3 < n^4 .... n^n -> polinomial

    2^n < 3^n < ... n^n -> exponencial

  • Lista completa em ordem crescente. -  mais eficiente para o menos eficiente

    https://uploaddeimagens.com.br/imagens/capturar-jpg--1433

  • Força Guerreiro!!!!!!


ID
2427229
Banca
AOCP
Órgão
FUNDASUS
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Algoritmo de ordenação é um algoritmo que coloca os elementos de uma dada sequência em uma certa ordem. Assinale a alternativa que NÃO é considerada um algoritmo de ordenação.

Alternativas
Comentários
  • Algoritmos de ordenação:

     

    Bubble Sort.

    Merge Sort. 

    Selection Sort.

    Quick Sort.

     

    https://pt.wikipedia.org/wiki/Algoritmo_de_ordena%C3%A7%C3%A3o

  • Algoritmos de ordenação:

     

    Bubble Sort.

    Merge Sort. 

    Selection Sort.

    Quick Sort.

    shell Sort;

    Heap Sort;

    Insertion Sort

  • Força Guerreiro!!!!!!


ID
2476651
Banca
COPEVE-UFAL
Órgão
MPE-AL
Ano
2012
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A ordenação de elementos em um vetor pode ser executada a partir de diversos algoritmos conhecidos e que são adequados para situações específicas. Sobre algoritmos de ordenação, dadas as seguintes afirmativas,

I. O algoritmo Bubble Sort é eficiente para ordenar poucos elementos, mas é lento para ordenar muitos itens.

II. O algoritmo Selection Sort para ordenação crescente consiste em mover o menor valor do vetor para a primeira posição, depois o segundo menor para a segunda posição e assim sucessivamente até os dois últimos valores.

III. O algoritmo Quick Sort ordena os valores de um vetor através de sucessivas seleções do elemento correto a ser posicionado em um segmento ordenado.

verifica-se que está(ão) correta(s)  

Alternativas
Comentários
  • Buble sort (Classificação por bolha): é mais conhecida dentre todas as técnicas, por ser fácil de compreender e implementar. O problema dessa técnica é que seu desemepenho é baixo, se comparado ao das outras.

    I - Correto

     

    Quicksort: também conhecido como interchange sort, ou método de troca e partição de uma premissã bastante conhecida: dividir para conquistar, isto é , dividir um problema grande em problemas menores geralmente diminui a complexidade geral do problema.

    II - Correto

     

    III - Errado.

  • Gabarito C

    Apenas a III está errada.

     

    BubbleSort - pouco eficiente para ordenar grandes quantidades de informações. Compara posições adjacentes e vai ordenando o vetor. Elemento da posição i é comparado com o elemento da posição i + 1.

     

    Seleção - encontra o menor elemento e o troca com a primeira posição, depois o segundo menor com a segunda posição, e assim sucessivamente (n-1 vezes). Número de com,parações (N2 − N)/2, sendo muito lento e inadequado para valores grandes de N. 
     

     

     

     

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

  • Completando, a alternativa III está errada, pois o algoritmo que escolhe um "eleito" para ser inserido de forma ordenada em um segmento é o Insertion Sort.

    instagram: @papirobizurado

  • Força Guerreiro!!!!!!


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

O algoritmo de ordenação baseado em vários percursos sobre o array, realizando, quando necessárias, trocas entre pares de elementos consecutivos denomina-se método:

Alternativas
Comentários
  • Letra C) Bubllesort: Um dos algoritmos mais simples que existem

    • Algoritmo:

    o Percorra o vetor inteiro comparando elementos adjacentes (dois a dois)

    o Troque as posições dos elements se eles estiverem fora de ordem

    o Repita os dois passos acima com os primeiros n-1 itens, depois com os primeiros n-2 itens, até que reste apenas um item

  • Algoritmos de ordenação que normalmente são cobrados em provas são:

    1 - BublleSort

    2 - SelectionSort

    3 - InsertSort

    4 - HeapSort

    5 - ShellSort

    6 - MergeSorte

    7 - QuickSort

  • Bubble Sort

     

     O algoritmo de ordenação bubble sort é um método simples de ordenação por troca.
     O vetor é percorrido do inicio ao fim onde cada elemento é comparado com o elemento posterior.
     Caso o elemento posterior seja menor, ocorre uma troca entre os dois elementos.
     Esse procedimento garante que o maior elemento ficará no final do vetor.
     Baixo desempenho para grandes quantidades de informações.

     Algoritmos de ordenação estável.
     Complexidade no pior caso: O(n2).

     Na primeira iteração são feitas n-1 comparações e o maior valor vai para o final do vetor. Na segunda iteração são feitas n-2 comparações e o segundo maior valor vai para o final do vetor, e assim por diante. Isso ocorre por que a cada iteração o maior valor que ainda não foi para sua posição, vai para o final do vetor.

     

    Fonte: Itnerante

  • Gabarito C

    A pala]vra chave foi ARRAY.

    BubbleSort - compara posições adjacentes e vai ordenando o vetor. Elemento da posição i é comparado com o elemento da posição i + 1.

     

     

     

     

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

  • Força Guerreiro!!!!!!


ID
2494735
Banca
FCM
Órgão
IF Baiano
Ano
2017
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Qual algoritmo de ordenação interna possui as seguintes características: não é estável, o tempo de execução é linear em relação ao tamanho da entrada e o fato da entrada já estar ordenada não melhora o custo?

Alternativas
Comentários
  • Estabilidade[editar | editar código-fonte]

    O heapsort não é um algoritmo de ordenação estável.

     

    https://pt.wikipedia.org/wiki/Heapsort

  • Força Guerreiro!!!!!!


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
2528569
Banca
UFMT
Órgão
UFMT
Ano
2014
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Sobre algoritmos de ordenação, assinale a afirmativa correta.

Alternativas
Comentários
  • SelectionSort (Ordenação por Seleção):

    Encontra-se o menor item do vetor. Troca-se com o item da primeira posição do vetor. Repetem-se essas duas operações com os n − 1 itens restantes, depois com os n − 2 itens, até que reste apenas um elemento.

     

    Algoritmos. Teoria e Prática (Português)

    por Thomas H. Cormen (Autor)

     

     

    Letra C

     

    Qcom - Questão comentada

    https://www.youtube.com/channel/UCBY27FNGgRpPa-PgFubwjPQ

     

  • Gabarito C

    Seleção - encontra o menor elemento e o troca com a primeira posição, depois o segundo menor com a segunda posição, e assim sucessivamente (n-1 vezes). Número de com,parações (N2 − N)/2, sendo muito lento e inadequado para valores grandes de N. 

     

     

     

     

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

  • a) BubbleSort: A ideia é percorrer o vector diversas vezes, e a cada passagem fazer flutuar para o topo o maior elemento da sequência.

    b) Heapsort: Utiliza uma estrutura de árvore binária para ordenar os elementos, à medida que os insere na estrutura.

    d) Quicksort: Divide a lista em duas através de um pivô com os maiores elementos de um lado e os menores do outro, continuando essa divisão de forma recursiva. 

  • Força Guerreiro!!!!!!

  • Bubble Sort:   Neste algoritmo cada elemento da posição i será comparado com o elemento da posição i + 1, ou seja, um elemento da posição 2 será comparado com o elemento da posição 3. Caso o elemento da posição 2 for maior que o da posição 3, eles trocam de lugar e assim sucessivamente.

    Resposta da QC: Selection Sort: Este algoritmo é baseado em se passar sempre o menor valor do vetor para a primeira posição (ou o maior dependendo da ordem requerida), depois o segundo menor valor para a segunda posição e assim sucessivamente, até os últimos dois elementos. Neste algoritmo de ordenação é escolhido um número a partir do primeiro, este número escolhido é comparado com os números a partir da sua direita, quando encontrado um número menor, o número escolhido ocupa a posição do menor número encontrado

    Quick sort: O Quicksort é o algoritmo mais eficiente na ordenação por comparação. Nele se escolhe um elemento chamado de pivô, a partir disto é organizada a lista para que todos os números anteriores a ele sejam menores que ele, e todos os números posteriores a ele sejam maiores que ele. Ao final desse processo o número pivô já está em sua posição final. 

    Heapsort: utiliza uma estrutura de dados chamada heap binário para ordenar os elementos a medida que os insere na estrutura. Assim, ao final das inserções, os elementos podem ser sucessivamente removidos da raiz da heap, na ordem desejada.


ID
2566852
Banca
CESPE / CEBRASPE
Órgão
TRF - 1ª REGIÃO
Ano
2017
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

A respeito dos algoritmos de classificação, julgue o item a seguir.


No pior caso, quando o vetor está inversamente ordenado, o algoritmo booble sort executa n2 operações para a ordenação de um vetor de n elementos.

Alternativas
Comentários
  • O gabarito é Certo.

     

    A complexidade de n^2 se deve ao fato de o algoritmo possuir pior performance.

  • Gabarito Certo

    bubble sort, ou ordenação por flutuação (literalmente "por bolha"), é um algoritmo de ordenação dos mais simples. A ideia é percorrer o vector diversas vezes, e a cada passagem fazer flutuar para o topo o maior elemento da sequência. Essa movimentação lembra a forma como as bolhas em um tanque de água procuram seu próprio nível, e disso vem o nome do algoritmo.

    No melhor caso, o algoritmo executa operações relevantes, onde n2 representa o número de elementos do vector. No pior caso, são feitas n2 operações. A complexidade desse algoritmo é de ordem quadrática. Por isso, ele não é recomendado para programas que precisem de velocidade e operem com quantidade elevada de dados.

     

     

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

  • Questão anulada e a argumentação utilizada foi: "A utilização da expressão “booble sort” em vez de bubble sort prejudicou o julgamento objetivo do item." 

  • kkkkkkkk, fala sério!!!

  • cespe é mto amador, pqp

  • Força Guerreiro!!!!!!


ID
2597956
Banca
CS-UFG
Órgão
DEMAE - GO
Ano
2017
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O algoritmo de busca e de ordenação que encontra o menor elemento e o troca com a primeira posição, depois o segundo menor com a segunda posição, e assim sucessivamente (n-1 vezes), usa o método de

Alternativas
Comentários
  • Algoritmo de seleção

    Ele usa a seguinte estratégia: seleciona o menor elemento do vetor, depois o segundo menor, depois o terceiro menor, e assim por diante.

     

     

    Letra A

     

     

    https://www.ime.usp.br/~pf/algoritmos/aulas/ordena.html

  • Inserção divide o vetor em 2 (classificado e não classificado).

    MergeSort divide para conquistar sucessivamente o vetor, e vai ordenando juntando os vetores.

    BubbleSort compara posições adjacentes e vai ordenando o vetor.

     

    @papirobizurado

  • Gabarito A

    ordenação por seleção (do inglês, selection sort) é um algoritmo de ordenação baseado em se passar sempre o menor valor do vetor para a primeira posição (ou o maior dependendo da ordem requerida), depois o de segundo menor valor para a segunda posição, e assim é feito sucessivamente com os {\displaystyle n-1} elementos restantes, até os últimos dois elementos.

     

     

     

     

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

  • fui pega por conta da redação da questão. Depois que eu fui perceber os pronomes demonstrativos :((((

  • fui pega por conta da redação da questão. Depois que eu fui perceber os pronomes demonstrativos :((((

  • Força Guerreiro!!!!!!


ID
2607448
Banca
FCC
Órgão
DPE-AM
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Para ordenar um vetor com N elementos, o método de ordenação Seleção (Selection Sort) faz o seguinte número de comparações:

Alternativas
Comentários
  • Ele é um dos mais lentos para vetores de tamanhos grandes.

  • O Selection Sort em seu pior, médio, ou melhor caso, terá de qualquer forma o mesmo número de trocas (N-1) e o mesmo número de comparações, que é dado por N(N-1)/2 = (N2 − N)/2. Ele tem como um ponto negativo ser instável e lento, já que nem sempre deixa registros com valores iguais na mesma posição relativa.

    Fonte:https://www.passeidireto.com/arquivo/3140531/algoritmos-de-ordenacao

  • Gabarito A

    Seleção - encontra o menor elemento e o troca com a primeira posição, depois o segundo menor com a segunda posição, e assim sucessivamente (n-1 vezes). Número de com,parações (N2 − N)/2, sendo muito lento e inadequado para valores grandes de N. 
     

     

     

     

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

  • a-

    a formula de iterações do selection sort é (n²-n)/2. e.g.: array 6 itens tera 15 iterações no selection sort

  • Força Guerreiro!!!!!!


ID
2629819
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.


O método de ordenação conhecido como quick sort utiliza o maior elemento, o qual é sempre colocado ao final do vetor, para garantir que a ordenação seja realizada em ordem decrescente.

Alternativas
Comentários
  • Gabarito Errado

    O algoritmo quicksort é um método de ordenação muito rápido e eficiente, inventado por C.A.R. Hoare em 1960, quando visitou a Universidade de Moscovo como estudante. Naquela época, Hoare trabalhou em um projeto de tradução de máquina para o National Physical Laboratory. Ele criou o quicksort ao tentar traduzir um dicionário de inglês para russo, ordenando as palavras, tendo como objetivo reduzir o problema original em subproblemas que possam ser resolvidos mais fácil e rápido. Foi publicado em 1962 após uma série de refinamentos.

    O quicksort é um algoritmo de ordenação por comparação não-estável.

     

     

    O quicksort adota a estratégia de divisão e conquista. A estratégia consiste em rearranjar as chaves de modo que as chaves "menores" precedam as chaves "maiores". Em seguida o quicksort ordena as duas sublistas de chaves menores e maiores recursivamente até que a lista completa se encontre ordenada. Os passos são:

    Escolha um elemento da lista, denominado pivô;

    Particiona: rearranje a lista de forma que todos os elementos anteriores ao pivô sejam menores que ele, e todos os elementos posteriores ao pivô sejam maiores que ele. Ao fim do processo o pivô estará em sua posição final e haverá duas sub listas não ordenadas. Essa operação é denominada partição;

    Recursivamente ordene a sub lista dos elementos menores e a sub lista dos elementos maiores;

    O caso base da recursão são as listas de tamanho zero ou um, que estão sempre ordenadas. O processo é finito, pois a cada iteração pelo menos um elemento é posto em sua posição final e não será mais manipulado na iteração seguinte.

    A escolha do pivô e os passos do Particiona podem ser feitos de diferentes formas e a escolha de uma implementação específica afeta fortemente a performance do algoritmo.

     

     

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

  • Trata-se do BubbleSort, que percorre o vetor do inicio ao fim, sem interrupção, mantendo o maior no final do vetor.

  • Usando-se o método de ordenação QuickSort deve-se escolher um elemento chamado pivô (normalmente um valor médio entre todos).

    Numa ordenação crescente:

    Compara-se o pivô com o elemento da direita, se o elemento for menor, troque de posição com o pivô.

    Compara-se o pivô com o elemento da esquerda, se o elemento for maior, troque de posição com o pivô.

    Repita os passos até que a ordenação esteja completa.

    Em alguns casos é necessário a escolha de um novo pivô.

     

  • Quando falar em quick sort lembre-se logo: é um algoritmo de ordenação por troca que aplica o
    paradigma de divisão e conquista, esse método trabalha com um PIVÔ, e esse PIVÔ não precisa ser o último do vetor.

  • Gabarito: ERRADO Algoritmo Quicksort


    Desenvolvido em 1960 por Tony Hoare, um cientista de computadores britânico

    Um dos métodos mais elegantes e eficientes para ordenação por comparações

    Muito utilizado na prática, e.g.:

    a função da biblioteca de C qsort

    o método sort da biblioteca de arrays de Java


    Ideia do QuicksortEstratégia "divide and conquer":


    1.Escolhemos um valor (designado pivot)

    2.Particionamos a sequência tal que:

    -todos os valores menores que o pivot fiquem antes deste;

    -todos os valores maiores que o pivot fiquem depois deste

    3. Recursivamente ordenamos as duas sub-sequências


    Caso base: se a sequência tem 0 ou 1 valores não há nada a fazer (já está ordenada).

  • Força Guerreiro!!!!!!

  • Iran, acho que a questão não se trata do BubbleSort, visto que a questão afirmou que é utilizado o maior elemento e colocado ao final do vetor. O Bubble vai percorrendo o vetor e comparando os primeiros elementos, de maneira que o maior fique mais à direita, ou seja, ele não utiliza "logo de cara" o maior elemento do vetor.

    Outro ponto é que a questão falou que a ordem gerada é decrescente, outro erro. Eu diria que, se a questão tentou referenciar algum outro algoritmo de ordenação, estaria mais para o SelectionSort. Esse, a depender da implementação, seleciona o menor (crescente) ou maior valor (decrescente), porém a essa inserção ocorre no início do vetor.

  • QuickSort = Dividir e Conquistar

ID
2630176
Banca
FAURGS
Órgão
HCPA
Ano
2016
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Um algoritmo de ordenação é executado através dos seguintes passos: (I) escolha de um elemento da lista, denominado pivô; (II) rearranjo da lista, de forma que todos os elementos anteriores ao pivô sejam menores do que ele e que todos os elementos posteriores ao pivô sejam maiores do que ele; e, também, de modo que o pivô, ao fim do processo, esteja em sua posição final, havendo duas sublistas não ordenadas; (III) ordenação recursiva das sublistas dos elementos menores e dos elementos maiores. Que algoritmo é esse?

Alternativas
Comentários
  • QUICK SORT

     

    O quick sort é um método de ordenação por troca que aplica o paradigma de divisão e conquista.
     Funcionamento:
     Um elemento do arranjo será escolhido como pivô.
     Em seguida o arranjo é dividido em 2 subarranjos:
        Elementos menores ou iguais ao pivô.
        Elementos maiores que o pivô
     Os dois arranjos do passo anterior são ordenados recursivamente com o quick sort.

     

    Fonte: Itnerante
     

  • Gabarito A

    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
2635180
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Dada a sequência numérica (15,11,16,18,23,5,10,22,21,12) para ordenar pelo algoritmo Selection Sort, qual é a sequência parcialmente ordenada depois de completada a quinta passagem do algoritmo?

Alternativas
Comentários
  • Questão deve ser anulada pois aplicando o Selection Sort no vetor, temos:

      VETOR:     15,11,16,18,23,5,10,22,21,12
      i=0, VETOR: 5,11,16,18,23,15,10,22,21,12, comparações = 9 (9), trocas = 1 (1)     - 
      i=1, VETOR: 5,10,16,18,23,15,11,22,21,12, comparações = 8 (17), trocas = 1 (2)
      i=2, VETOR: 5,10,11,18,23,15,16,22,21,12, comparações = 7 (24), trocas = 1 (3)
      i=3, VETOR: 5,10,11,12,23,15,16,22,21,18, comparações = 6 (30), trocas = 1 (4)
      i=4, VETOR: 5,10,11,12,15,23,16,22,21,18, comparações = 5 (35), trocas = 1 (5)
      i=5, VETOR: 5,10,11,12,15,16,23,22,21,18, comparações = 4 (39), trocas = 1 (6)
      i=6, VETOR: 5,10,11,12,15,16,18,22,21,23, comparações = 3 (42), trocas = 1 (7)
      i=7, VETOR: 5,10,11,12,15,16,18,21,22,23, comparações = 2 (44), trocas = 1 (8)
      i=8, VETOR: 5,10,11,12,15,16,18,21,22,23, comparações = 1 (45), trocas = 0 (8)

    A resposta deveria ser a sequencia, onde i=4 (5ª iteração), acima: 5,10,11,12,15,23,16,22,21,18.

  • Felipe, pelo que entendi olhando as alternativas, ele parece ter começado do final. O enunciado não diz de onde começa ou se é crescente ou decrescente, mas dá pra sacar isso olhando as alternativas.

    Veja que todas tem 21, 22 e 23 no fim; começando pelo final até a 4ª iteração alterariamos os 4 maiores valores pra o final, que seriam 18, 21, 22 e 23.

    Para o quinto valor seria o 16, que é o mais alto dos restantes, só que aí tem 3 alternativas que cobriam isso (b, d, e); dessa forma pelo que entendi, não teria motivo de mudar o primeiro número já que ele só seria alterado na iteração seguinte, por isso o 15 deveria ficar no começo ainda.

    Dessa forma, o único que tem o 16, 18, 21, 22 e 23 (que estaria correto na quinta iteração), mas mantém um número que não foi ainda selecionado (neste caso o 15), seria a alternativa b)

    Note também que na alternativa e), seria a sexta iteração, com o 15, 16, 18, 21, 22 e 23.

  • Você tem razão Francisco, se rodarmos o algorimo de traz para frente, encontramos a letra B. Conforme a execução abaixo, mas o único algortimo que é feito dessa forma é o BubbleSort. O Selection Sort nunca foi apresentado dessa forma. Mas, de qualquer forma sua informação foi bem útil e pelo jeito eles não vão anular. Vamos que vamos.

      VETOR:     15,11,16,18,23,5,10,22,21,12

     i=0, VETOR: 15,11,16,18,12,5,10,22,21,23, comparações = 9 (9), trocas = 1 (1)     
     i=1, VETOR: 15,11,16,18,12,5,10,21,22,23, comparações = 8 (17), trocas = 1 (2)
     i=2, VETOR: 15,11,16,18,12,5,10,21,22,23, comparações = 7 (24), trocas = 0 (2)
     i=3, VETOR: 15,11,16,10,12,5,18,21,22,23, comparações = 6 (30), trocas = 1 (3)
     i=4, VETOR: 15,11,5,10,12,16,18,21,22,23, comparações = 5 (35), trocas = 1 (4)  --> Quinta Iteração. Sequencia da letra B.
     i=5, VETOR: 12,11,5,10,15,16,18,21,22,23, comparações = 4 (39), trocas = 1 (5)
     i=6, VETOR: 10,11,5,12,15,16,18,21,22,23, comparações = 3 (42), trocas = 1 (6)
     i=7, VETOR: 10,5,11,12,15,16,18,21,22,23, comparações = 2 (44), trocas = 1 (7)
     i=8, VETOR: 5,10,11,12,15,16,18,21,22,23, comparações = 1 (45), trocas = 1 (8)

  • Aí eu não sei; nas aulas que vi não especificava que deveria começar da esquerda ou a ordem deveria ser crescente ou decrescente, apenas usava dessa forma para mostrar como funciona. Pela lógica do selection sort tá rodando certo ali, ele vai pegar o próximo item de onde esteja e jogar para a posição correta.

    No bubblesort ele ia "arrastar" o item comparando com o item ao lado, mas isso não seria possível na iteração 2 para a 3 no que postou, veja que ele já pega o 18 e substitui pelo 10 mesmo eles estando longe, logo não é um bubblesort.

    Se vc aplicar a lógica da busca em qualquer tipo de vetor, vai poder ver que eles podem ser aplicados independente se começou da esquerda pra direita ou da direita pra esquerda e a lógica ainda funcionará.

  • Concordo com o Felipe

  • Achei uma forma fácil de fazer.

    O algoritmo pega o maior e põe no final ( CRESCENTE )

    Põe respectivamente o maior no final: tendo-os 5 últimos = [ 16, 18, 21, 22, 23 ]

    Como são trocados apenas com os outros valores em que estavam os maiores, pode-se ver que

    o valor 15 não muda de posição.

    Assim fica a letra B como resposta.

  • Força Guerreiro!!!!!!


ID
2709256
Banca
SUGEP - UFRPE
Órgão
UFRPE
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Assinale a alternativa que contém apenas algoritmos de ordenação de ordem quadrática.

Alternativas
Comentários
  • MERGE SORT ---> complexidade nlogn

    QUICK SORT ---> complexidade no pior caso n2 e complexidade no melhor caso nlogn

    BUBBLE SORT ---> complexidade pior n2

    INSERÇÃO DIRETA ---> complexidade pior n2 e complexidade melhor n

    HEAPSORT ---> complexidade nlogn

     

    Fonte: Minhas anotações

  • Força Guerreiro!!!!!!

  • Lembrar que MERGE e HEAP São iguais no sentido de os dois possuem

    - Melhor Caso = O(n log n)

    - Caso Médio = O(n log n)

    - Pior Caso = O(n log n)

    GAB A


ID
2723188
Banca
CEPS-UFPA
Órgão
UFPA
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

O algoritmo Heapsort, quando usado para ordenar uma coleção n elementos distintos, possui, respectivamente, complexidade de melhor caso e de pior caso iguais a

Alternativas
Comentários
  • d) O(n log n) e O(n log n

    Veja no link  abaixo um  quadro interessante da complexidade dos algoritmos

    https://www.ft.unicamp.br/liag/siteEd/definicao/ordenacao.php

  • Gabarito D

    Comparações no pior caso: 2n log2n + O(n) é o mesmo que 2n lgn + O(n)

    Trocas no pior caso: n log2n + O(n) é o mesmo que n lgn + O(n)

    Melhor e pior caso: O(n log2n) é o mesmo que O(n lgn)

     

     

     

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

  • Força Guerreiro!!!!!!

  • HEAPSORT ele é todo O(n log n)

    - Melhor Caso = O(n log n)

    - Caso Médio = O(n log n)

    - Pior Caso = O(n log n)

    GAB D.


ID
2735077
Banca
Marinha
Órgão
Quadro Técnico
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Observe a tabela a seguir, que foi submetida a um algoritmo de ordenação:
8 7 6 5 4 3 2 1

Em algum ponto da ordenação, essa tabela se encontra da seguinte forma:
6 5 3 1 4 2 7 8

Sendo assim, segundo Szwarcfitter e Markenzon (2010), qual o método de ordenação utilizado acima?

Alternativas
Comentários
  • C) Heap. 

  • O heapsort utiliza uma estrutura de dados chamada heap binário para ordenar os elementos a medida que os insere na estrutura. Assim, ao final das inserções, os elementos podem ser sucessivamente removidos da raiz da heap, na ordem desejada.

    Alternativa: C

  • GABARITO: C

    Para colocar em ordem crescente, o heapsort coloca o maior elemento no final do array, o segundo maior antes dele e assim sucessivamente.

    Complexidade no melhor, médio e pior caso: O(n logn)