"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Algoritmo de classificação por seleção

Algoritmo de classificação por seleção

Publicado em 2024-11-07
Navegar:871

Selection Sort Algorithm

O que é classificação por seleção?

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.

Etapas do algoritmo

  1. Comece com o primeiro elemento da matriz e suponha que seja o menor.
  2. Compare este elemento com os outros elementos da matriz.
  3. Se você encontrar um elemento menor, troque-o pelo primeiro elemento.
  4. Mova para o próximo elemento na matriz e repita o processo para os elementos restantes não classificados.
  5. Continue este processo até que todo o array esteja classificado.
#Suppose we have the following array:

arr = [64, 25, 12, 22, 11]

Passe 1:

  • O menor elemento entre o índice 0 e o resto da matriz é 11.
  • Trocamos 64 por 11.

Array após a primeira passagem: [11, 25, 12, 22, 64]

Passe 2:

  • Agora, concentre-se no subarray começando no índice 1. O menor elemento entre 25, 12, 22, 64 é 12.
  • Trocamos 25 por 12.

Array após a segunda passagem: [11, 12, 25, 22, 64]

Passe 3:

  • O menor elemento entre 25, 22, 64 é 22.
  • Trocamos 25 por 22.

Array após a terceira passagem: [11, 12, 22, 25, 64]

Passe 4:

  • O subarray agora contém 25, 64. Como eles já estão em ordem, nenhuma troca é necessária.

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 e Desvantagens

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.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/shubham_kharche_05/selection-sort-algorithm-2g63?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

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