SóProvas


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