Sobes.tech
Junior — Middle

Consegues listar diferentes algoritmos de ordenação que conheces?

sobes.tech IA

Resposta da IA

Existem muitos algoritmos de ordenação, aqui estão alguns dos mais conhecidos:

  • Ordenação Bubble (Bubble Sort) — um algoritmo simples que passa repetidamente pela lista, comparando elementos adjacentes e trocando-os de lugar se estiverem na ordem errada.
  • Ordenação por Inserção (Insertion Sort) — constrói um array ordenado inserindo cada novo elemento na posição correta.
  • Ordenação por Seleção (Selection Sort) — a cada passo, seleciona o elemento mínimo da parte não ordenada e troca-o com o primeiro elemento dessa parte.
  • Ordenação por Fusão (Merge Sort) — divide recursivamente o array ao meio, ordena as partes e as funde de novo.
  • Ordenação Rápida (Quick Sort) — escolhe um elemento pivô, divide o array em partes menores e maiores que o pivô, e ordena recursivamente.
  • Ordenação por Heap (Heap Sort) — constrói uma estrutura de heap e extrai o elemento máximo, reorganizando o heap.

Exemplo de ordenação rápida em C++:

void quickSort(int arr[], int left, int right) {
    int i = left, j = right;
    int pivot = arr[(left + right) / 2];

    while (i <= j) {
        while (arr[i] < pivot) i++;
        while (arr[j] > pivot) j--;
        if (i <= j) {
            std::swap(arr[i], arr[j]);
            i++; j--;
        }
    }

    if (left < j) quickSort(arr, left, j);
    if (i < right) quickSort(arr, i, right);
}