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.
#Suppose we have the following array: arr = [64, 25, 12, 22, 11]
Matriz después del primer pase: [11, 25, 12, 22, 64]
Matriz después del segundo pase: [11, 12, 25, 22, 64]
Matriz después del tercer pase: [11, 12, 22, 25, 64]
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:
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í.
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