O algoritmo Selection Sort divide o array em duas partes: a parte classificada e a parte não classificada. Inicialmente, a parte classificada está vazia e a parte não classificada contém todos os elementos. O algoritmo funciona encontrando o menor (ou maior, dependendo da ordem de classificação) elemento da parte não classificada e trocando-o pelo primeiro elemento da parte não classificada. Este processo continua até que todo o array seja classificado.
#Suppose we have the following array: arr = [64, 25, 12, 22, 11]
Array após a primeira passagem: [11, 25, 12, 22, 64]
Array após a segunda passagem: [11, 12, 25, 22, 64]
Array após a terceira passagem: [11, 12, 22, 25, 64]
Matriz classificada final: [11, 12, 22, 25, 64]
def selection_sort(arr): # Traverse through all array elements for i in range(len(arr)): # Find the minimum element in the remaining unsorted part min_index = i for j in range(i 1, len(arr)): if arr[j]Matriz classificada: [11, 12, 22, 25, 64]
Complexidade temporal da classificação de seleção:
Melhor caso: O(n²)
Caso médio: O(n²)
Pior caso: O(n²)
Embora a classificação por seleção tenha um bom desempenho para conjuntos de dados pequenos, ela não é ideal para matrizes maiores porque sua complexidade de tempo é O(n²). No entanto, é fácil de implementar e pode ser útil em casos em que a memória é uma preocupação, pois a classificação por seleção está instalada (não requer memória adicional).
Vantagens:
Simples de entender e implementar.
Tem bom desempenho em listas pequenas.
Não requer memória extra, pois classifica a matriz no lugar.
Desvantagens:
Ineficiente para grandes conjuntos de dados devido à sua complexidade de tempo O(n²).
Não é um algoritmo de classificação estável, o que significa que elementos iguais podem não preservar sua ordem em relação uns aos outros.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3