Skip to content

Implementação dos 9 algoritmos de ordenação: Bubble Sort, Selection Sort, Insertion Sort, Heap Sort, Merge Sort, Quick Sort, Count Sort, Bucket Sort e Radix Sort.

Notifications You must be signed in to change notification settings

DevDaniloFerrari/AlgoritmosDeOrdenacao

Repository files navigation

Algoritmos de Ordenação

BubbleSort

É o algoritmo de ordenação dos mais simples, funciona por flutuação. Percorre o vetor várias vezes e passa os elementos maiores para o final.

  • Pior caso: O(n^2)
  • Caso médio: O(n^2)
  • Melhor caso: O(n)

InsertionSort

É um algoritmo que ordena por inserção. Percorre o vetor enquanto o valor atual for maior que o próximo, inverte os valores e depois diminui 1 no índice.

  • Pior caso: O(n^2)
  • Caso médio: O(n^2)
  • Melhor caso: O(n)

HeapSort

O Heapsort é um algoritmo que ordena os elementos enxergando-os como uma árvore binaria no max-heap ele vai comparando os elementos para que todo índice pai seja menor que o índice filho até que o vetor fique ordenado.

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

CountSort

É um algoritmo de ordenação que utiliza vetor auxiliar para ordenar. Ele conta quantas vezes um número aparece e coloca em um vetor auxiliar. Depois insere no vetor ordenado com base no índice do vetor auxiliar.

  • Pior caso: O(n)
  • Caso médio: O(n)
  • Melhor caso: O(n)

SelectionSort

É um algoritmo que ordena por seleção, sempre passando o menor valor para a o início.

  • Pior caso: O(n^2)
  • Caso médio: O(n^2)
  • Melhor caso: O(n^2)

QuickSort

Ordena os elementos de um vetor a partir da escolha de um pivô de modo que todos os elementos pequenos fiquem na parte esquerda do vetor e todos os elementos grandes fiquem na parte direita é um algoritmo que tem como objetivo dividir e conquistar até que todo vetor seja ordenado recursivamente.

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

MergeSort

Algoritmo que divide o problema em subproblemas para chegar em uma solução quando os vetores são divididos em subproblemas no final de tudo ocorre uma mistura para que se chegue na solução final.

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

BucketSort

Bucketsort é um algoritmo de ordenação que funciona dividindo um vetor em um número finito de recipientes. Cada recipiente é então ordenado individualmente, seja usando um algoritmo de ordenação diferente, ou usando o ele recursivamente.

  • Pior caso: O(n^2)
  • Caso médio: O(n + k)
  • Melhor caso: O(n + k)

Radixsort

O Radixsort ordena itens que estão identificados por índices únicos dos dígitos menos significativos até os mais significativos.

  • Pior caso: O(n^2)
  • Caso médio: O(n + k)
  • Melhor caso: O(n + k)

Resultados

Máquina utilizada

Processador: AMD A4-3305M 1.9 GHz
Memória: 2 memórias de 2 GB DDR3
Placa de Vídeo: AMD Radeon HD 6480G


Tempo total de execução: 50,6 horas

Vetor de 100
vetor100

Vetor de 1000
vetor1000

Vetor de 10000
vetor10000

Vetor de 100000
vetor100000

Vetor de 1000000
vetor1000000

About

Implementação dos 9 algoritmos de ordenação: Bubble Sort, Selection Sort, Insertion Sort, Heap Sort, Merge Sort, Quick Sort, Count Sort, Bucket Sort e Radix Sort.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages