Algoritmo de clasificación --- clasificación de selección (versión java)

Orden de selección simple

principio

El principio de ordenación por selección (ordenación por selección) es similar a la ordenación por inserción y también se divide en intervalos ordenados y no ordenados. Pero la ordenación por selección encontrará el elemento más pequeño del intervalo de ordenación cada vez y lo colocará al final del intervalo ordenado.

El proceso de ejecución de selección y ordenación simple se implementa mediante el código como se muestra en la figura siguiente
Inserte la descripción de la imagen aquí

public class SelectSort {
    
    
    public static void main(String[] args) {
    
    
        int arr[] = {
    
    34,1,139,101};
        for (int i = 0; i < arr.length; i++) {
    
    
            int minIndex = i;
            int min = arr[i];
            for (int j = i + 1; j < arr.length; j++) {
    
    
                //找最小值
                if (min > arr[j]) {
    
    
                    //如果最初的min值比后面的值大,说明不是最小值,重置min值,直到找到对应位置最小的min值
                    min = arr[j];
                    minIndex = j;
                }
            }
            //先找到对应位置的最小值,再将找到的最小值与最初的值进行交换
            //将最小值与最初的值进行交换
            if (minIndex != i) {
    
    
                arr[minIndex] = arr[i];
                arr[i] = min;
            }
            System.out.println(Arrays.toString(arr));
        }
    }
}

1: ¿Cuál es la complejidad temporal del tipo de selección?

Combinado con el análisis de los métodos de análisis anteriores, se puede ver que la complejidad de tiempo del mejor caso del tipo de selección es O (n ^ 2), la complejidad de tiempo del peor caso es: O (n ^ 2), y el la complejidad de tiempo promedio es: O (n ^ 2).

2: ¿Cuál es la complejidad espacial del tipo de selección?

A través de la implementación del algoritmo, podemos encontrar que la complejidad espacial de la clasificación por selección es O (1), que es un algoritmo de clasificación in situ.

3: ¿Es la clasificación selectiva un algoritmo de clasificación estable?

La clasificación por selección no es un algoritmo de clasificación estable, porque la clasificación por selección siempre encuentra el valor más pequeño entre los elementos restantes sin clasificar e intercambia posiciones con el primer elemento del rango sin clasificar, lo que destruye la estabilidad, como 5, 8., 5,2,9 tal conjunto de datos, si usa el algoritmo de clasificación de selección para ordenar, el elemento más pequeño 2 se encuentra por primera vez, y la posición de los primeros 5 se intercambia, entonces el orden de los primeros 5 y los 5 del medio cambiará , por lo que se vuelve inestable. Por esta razón, la clasificación por selección es ligeramente inferior a la clasificación por burbujas y la clasificación por inserción en términos de estabilidad.

Supongo que te gusta

Origin blog.csdn.net/qq_33626996/article/details/113178888
Recomendado
Clasificación