Método de clasificación de selección de estructura de datos

  Hay dos formas de elegir el método de clasificación: una es que en todos los datos, al ordenar de grande a pequeño, el valor máximo se coloca en la primera posición; si se ordena de pequeño a grande, se coloca el valor máximo Fin de la posición.

  Por ejemplo, cuando N datos necesitan ser ordenados de pequeño a grande, primero compare los datos en la primera posición con los datos en 2, 3, 4 ... N posiciones. Si los datos son menores o iguales a una de las ubicaciones, los datos en las dos ubicaciones no cambiarán; si es mayor que una de las ubicaciones, se intercambiarán los datos en las dos ubicaciones. Después de los nuevos datos de la primera posición después del intercambio, continúe buscando los siguientes datos de posición para comparar, hasta el final de la posición, en este momento los datos de la primera posición son el valor mínimo de la secuencia de clasificación. A continuación, seleccione los datos de la segunda posición, y compare los datos en 3, 4, 5, ... N posiciones en secuencia, y coloque el valor mínimo de la clasificación restante en la segunda posición. Siga este método hasta encontrar el mínimo de (N-1) posiciones, luego complete la clasificación del método de clasificación de selección de pequeño a grande.

Proceso de cálculo

 

Análisis de selección

  1. Ya sea el peor de los casos, el mejor caso o el caso promedio, debe encontrar el mínimo (máximo), por lo que el número de comparaciones es (n-1) + (n-2) + (n-3) + ... + 3 + 2 + 1 = n (n-1) / 2 veces; la complejidad del tiempo es O (n ^ 2).
  2. Dado que la ordenación por selección es intercambiar directamente el valor mínimo o máximo con el valor clave que no está ordenado al frente, es probable que se cambie el orden de clasificación de datos, por lo que no es un método de ordenación estable.
  3. Solo se necesita un espacio adicional, por lo que la complejidad del espacio es óptima.
  4. Este método de clasificación es adecuado para casos en los que la cantidad de datos es pequeña o se han ordenado algunos datos.

Ejemplo 1

/ ** 
 * Clasificación del método de selección 
 * 
 * / 
public  class SelectionSort { 

    public  static  void main (String [] args) {
         int data [] = new  int [] {9, 7, 5, 3, 4, 6 }; 
        Sistema. out.print ( "datos en bruto:" ); 
        showData (datos); 
        SELECT (datos); 
        de System.out.print ( "ordenadas de datos:" ); 
        showData (datos); 
    } 
    
    privada  estáticas  vacío SELECT ( int datos [ ]) {
         int i, j, tmp;
         para(i = 0; i <data.length - 1; i ++ ) {
             for (j = i + 1; j <data.length; j ++ ) {
                 if (data [i]> data [j]) { 
                    tmp = data [ yo]; 
                    datos [i] = datos [j]; 
                    datos [j] = tmp; 
                } 
            } 
            showData (datos); 
        } 
    } 
    
    privado  estático  vacío showData ( int datos []) {
         para ( int i = 0; i <data.length; i ++  ) {
            System.out.printf ( "[% d]" , datos [i]); 
        } 
        System.out.printf ( "% n" ); 
    } 

}

 

Supongo que te gusta

Origin www.cnblogs.com/qpliang/p/12686875.html
Recomendado
Clasificación