"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Algoritmo de clasificación de selección

Algoritmo de clasificación de selección

Publicado el 2024-11-07
Navegar:499

Selection Sort Algorithm

¿Qué es la clasificación por selección?

El algoritmo de clasificación por selección divide la matriz en dos partes: la parte ordenada y la parte sin clasificar. Inicialmente, la parte ordenada está vacía y la parte no ordenada contiene todos los elementos. El algoritmo funciona encontrando el elemento más pequeño (o más grande, según el orden de clasificación) de la parte sin clasificar e intercambiándolo con el primer elemento de la parte sin clasificar. Este proceso continúa hasta que se ordena toda la matriz.

Pasos del algoritmo

  1. Comience con el primer elemento de la matriz y suponga que es el más pequeño.
  2. Compare este elemento con los otros elementos de la matriz.
  3. Si encuentras un elemento más pequeño, cámbialo con el primer elemento.
  4. Pase al siguiente elemento de la matriz y repita el proceso para los elementos restantes sin clasificar.
  5. Continúe este proceso hasta que se ordene toda la matriz.
#Suppose we have the following array:

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

Pase 1:

  • El elemento más pequeño entre el índice 0 y el resto de la matriz es 11.
  • Intercambiamos 64 por 11.

Matriz después del primer pase: [11, 25, 12, 22, 64]

Pase 2:

  • Ahora, concéntrese en el subarreglo que comienza en el índice 1. El elemento más pequeño entre 25, 12, 22, 64 es 12.
  • Intercambiamos 25 por 12.

Matriz después del segundo pase: [11, 12, 25, 22, 64]

Pase 3:

  • El elemento más pequeño entre 25, 22, 64 es 22.
  • Intercambiamos 25 por 22.

Matriz después del tercer pase: [11, 12, 22, 25, 64]

Pase 4:

  • El subarreglo ahora contiene 25, 64. Como ya están en orden, no es necesario realizar ningún intercambio.

Matriz ordenada 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 ordenada: [11, 12, 22, 25, 64]

Complejidad temporal del tipo de selección:

  • Mejor caso: O(n²)

  • Caso promedio: O(n²)

  • Peor caso: O(n²)

Aunque la clasificación por selección funciona bien para conjuntos de datos pequeños, no es ideal para matrices más grandes porque su complejidad temporal es O(n²). Sin embargo, es fácil de implementar y puede resultar útil en casos en los que la memoria es un problema, ya que la clasificación por selección está disponible (no requiere memoria adicional).

Ventajas y desventajas

Ventajas:

  • Fácil de entender e implementar.

  • Funciona bien en listas pequeñas.

  • No requiere memoria adicional ya que ordena la matriz en su lugar.

Desventajas:

  • Ineficiente para grandes conjuntos de datos debido a su O(n²) complejidad temporal.

  • No es un algoritmo de clasificación estable, lo que significa que es posible que elementos iguales no conserven su orden entre sí.

Declaración de liberación Este artículo se reproduce en: https://dev.to/shubham_kharche_05/selection-sort-algorithm-2g63?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3