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);
}