Skip to content

Instantly share code, notes, and snippets.

@MoisesDuarte
Last active June 4, 2020 01:50
Show Gist options
  • Save MoisesDuarte/17a38f227ebff3b5c67c82681dcc3975 to your computer and use it in GitHub Desktop.
Save MoisesDuarte/17a38f227ebff3b5c67c82681dcc3975 to your computer and use it in GitHub Desktop.

Atividade Extra

  • Gravar videos explicando o funcionamento do seguintes algoritmos:

    • MergeSort
    • QuickSort
    • ShellSort
  • Tópicos do vídeo:

    • Introdução: Apresentação da história do algoritmo, criador e especificações.
    • Pseudocódigo: Demonstração do pseudocodigo que representa o algoritmo.
    • Exemplo: Em formato de desenho, tabelas, etc.

Ordenação

  • Conceito: Operação de rearranjar os dados em uma determinada ordem (alfabético, crescente, decrescente, etc.).
  • Observações: Devem ser considerados tempo gasto pela ordenação e uso econômico de memória na escolha do algoritmo.

Principais Algoritmos

  • Bubble Sort ou trocas sucessivas: Método simples de ordenação que faz trocas sucessivas com base em comparações, flutuando o elemento pelo vetor, trocando ele pelo seu 'parente' em caso positivo da comparação, até esse alcançar o fim do vetor. Esse processo é repetido sucessivamente até o vetor ser organizado. A cada iteração, o indice é decrementando em um, evitando repetir a troca em campos já ordenados.

    • Vantagem: Implementação simples, útil para vetores pequenos.
    • Desvantagem: Com estruturas grandes, maior numero de comparações e movimento de dados, causando lentidão.
  • Insertion Sort: Divide os elementos em duas subestruturas, uma com elementos ordenados e outros com elementos para ordenar. Processo é feito da primeira para ultima posição. Valor que será ordenado é guardado em auxiliar. Indice representa o valor antecessor a esse elemento. Comparação checa se indice é maior ou igual a 0 e se valor do indice é maior que o auxiliar. Caso sim, desloca o valor em indice para o local correto. Checa se há mais indices a esquerda. Caso não, o valor de indice se torna o elemento em auxiliar, que agora está no local correto. Aumentando gradativamente o valor do vetor, cada intervalo é ordenado e reordenado com a inserção de novos valores no processo. Pode ser visto como o inverso do Bubble Sort. Resumidamente, o algoritmo vai ordenando um bloco, começando com os dois primeiros valores do vetor, e adicionando um novo elemento a esse bloco já ordenado. Então, ele ordena esse novo elemento nesse bloco. Esse novo bloco então é acrescentado mais um elemento e ordenado novamente. Esse processo se repete até alcançar o fim do vetor.

    • Vantagens: Bom para quando a sequência já está quase ordenada ou quando quer adicionar itens a uma sequência já ordenada. Comumente, é utilizado para inserção em intervalos já ordenados e não para ordenação em si.
    • Desvantagens: Não é feito especificamente para vetores totalmente desordenados ou ordenados de forma contrária a ordenação especificada, provocando muitos movimentos e comparações.
  • Selection Sort: O algoritmo procura o menor elemento do vetor e troca de lugar com a primeira posição. Os subsequentes menores serão trocados com a posição em frente a troca anterior, até alcançar o fim do vetor.

    • Vantagem:
  • Merge Sort:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment