š Selection Sort
Introduçãoā
O Selection Sort é um algoritmo de ordenação simples baseado em comparações. Ele percorre o array repetidamente, selecionando o menor (ou maior) elemento da parte não ordenada e movendo-o para a posição correta na parte ordenada.
Complexidadeā
- Tempo (pior e médio caso): O(n²)
- Tempo (melhor caso): O(n²)
- EspaƧo: O(1) ā algoritmo in-place
Como funcionaā
- Encontre o menor elemento na parte não ordenada do array.
- Troque esse elemento com o primeiro elemento da parte não ordenada.
- Avance a fronteira da parte ordenada em uma posição.
- Repita o processo atƩ que todo o array esteja ordenado.
Implementação (Python)ā
def selection_sort(arr):
n = len(arr)
for i in range(n):
min_idx = i
for j in range(i + 1, n):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
Exemplo de usoā
arr = [64, 25, 12, 22, 11]
selection_sort(arr)
print(arr) # SaĆda: [11, 12, 22, 25, 64]
Vantagens e desvantagensā
ā Vantagensā
- FƔcil de entender e implementar.
- Não requer memória extra (ordenção in-place).
- Tem um número fixo de comparações (independente da entrada estar quase ordenada ou não).
ā Desvantagensā
- Muito lento para listas grandes (O(n²)).
- Não é estÔvel por padrão (a ordem relativa de elementos iguais pode mudar).
Quando usar Selection Sortā
- Para fins didÔticos, ao comparar diferentes algoritmos de ordenação.
- Em coleƧƵes muito pequenas, onde a simplicidade Ʃ mais importante do que a performance.
Algoritmos relacionadosā
- Bubble Sort: realiza trocas entre elementos adjacentes.
- Insertion Sort: insere cada elemento na posição correta de uma sublista jÔ ordenada.