| 5499 Visualizações

Ordenação com Selection Sort, Insertion Sort, Bubble Sort, Merge Sort, Quick Sort, Heap Sort em Java

Java Opening

E aí galera, hoje deixo pra vocês um projeto que ordena números de um arquivo em .CSV contendo várias opções de ordenação contendo:

Entendendo Selection Sort, Insertion Sort, Bubble Sort, Merge Sort, Quick Sort, Heap Sort

Vamos ver detalhes de cada método de ordenação juntamente com seu código fonte feito em java.

Selection Sort

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 n-1 elementos restantes, até os últimos dois elementos.

Fonte: Wikipedia

Insertion Sort

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.

Fonte: Wikipedia

Bubble Sort

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.

Fonte: Wikipedia

Quick Sort

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.

Fonte: Wikipedia

Merge Sort

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

Fonte: Wikipedia

Heap Sort

O Heapsort não é um algoritmo de ordenação estável. Porém, é possível adaptar a estrutura a ser ordenada de forma a tornar a ordenação estável. Cada elemento da estrutura adaptada deve ficar no formato de um par (elemento original, índice original). Assim, caso dois elementos sejam iguais, o desempate ocorrerá pelo índice na estrutura original.

Fonte: Wikipedia

Colocando esses Códigos para Executar

Vamos precisar de uma classe principal para nosso projeto então crie uma classe “ProgramaPrincipal

Vamos criar uma classe “Ordenacao” onde irá ficar nossas chamadas das classes.

Agora vamos criar uma classe “Arquivo

Classe para gerar números randomicamente

Baixar projeto de ordenação

NetBeans: Download

Arquivo com números: Download

Caso você tenha alguma dúvida referente a estes métodos de ordenação, deixe um comentário abaixo.

Formado em Gestão em Análise e Desenvolvimento de Sistemas, Bacharel em Sistemas de Informação pela Universidade Federal de Goiás (UFG) e desenvolvedor Fullstack. Amante da tecnologia que busca facilitar a vida das pessoas. O objetivo aqui é compartilhar conhecimentos das áreas de tecnologia em geral.
  • Kelvin Santiago

    Olá Tiaguinho, com esses algorítimos no blog te dará uma base para resolver seu problema, tente entende-los.

  • Kelvin Santiago

    Já respondido.

  • Kelvin Santiago

    Respondido.