Sobes.tech
Junior — Middle

Que tipos de ordenação conhece e quais são as suas dificuldades em tempo e memória?

sobes.tech IA

Resposta da IA

Existem muitos algoritmos de ordenação, aqui estão os principais com a sua complexidade temporal e espacial:

  • Ordenação Bubble (Bubble Sort)

    • Tempo: O(n²) no pior e médio caso
    • Memória: O(1) (ordenamento in-place)
  • Ordenação por inserção (Insertion Sort)

    • Tempo: O(n²) no pior caso, O(n) no melhor (array quase ordenado)
    • Memória: O(1)
  • Ordenação por seleção (Selection Sort)

    • Tempo: O(n²) em todos os casos
    • Memória: O(1)
  • Ordenação por fusão (Merge Sort)

    • Tempo: O(n log n) em todos os casos
    • Memória: O(n) (requer memória adicional para fusão)
  • Ordenação rápida (Quick Sort)

    • Tempo: O(n log n) em média, O(n²) no pior caso (raro)
    • Memória: O(log n) (pilha recursiva)
  • Ordenação por heap (Heap Sort)

    • Tempo: O(n log n) em todos os casos
    • Memória: O(1)
  • Timsort — ordenação híbrida usada em Python e Java

    • Tempo: O(n log n) em média e no pior caso
    • Memória: O(n)

A escolha do algoritmo depende do tamanho dos dados, dos requisitos de memória e da estabilidade da ordenação (se mantém a ordem de elementos iguais). Por exemplo, o Merge Sort é estável, o Quick Sort costuma ser mais rápido, mas instável.