java se dan cuenta: tipo de combinación

Combinar para ordenar:

Núcleo: divide y vencerás, recursividad

Idea: primera división y cierre

 

implementación sub-código:

/ *
  *归并排序
  * /
 public static void merge_sort (int [] str, int izquierda, int derecha, int [] temp) {
  si (a la izquierda <derecha) {
   int loco = (izquierdo + derecho) / 2;
   merge_sort (str, izquierda, mad, temp);
   merge_sort (str, mad + 1, a la derecha, temp);
   merge (str, izquierda, derecha, temperatura);
  }
 }

El código combinado para lograr:

// izquierda y parte derecha de la matriz definir operaciones str array
 public static Merge void (int [] str, int izquierda, int derecha, int [] TEMP) {
  // período str de operación de la matriz
  // matriz desde el corte intermedio l = izquierda desde el dos primera sección a la segunda sección de la loca-1 para r = loco derecha
  int = MAD (izquierdo + derecho) / 2;
  int l = izquierda;
  int + r = loco 1;.
  int i = 0;
  // tamaño de las dos matrices se almacenan en Ordenada array temp;
  // cuando una matriz límites salida
  @ límites: la izquierda que a los datos de segmento de la derecha
  , mientras que (l <= loco && r <= derecha) {// no fuera de rango continúa comparativo
   IF (STR [L] <= STR [R & lt]) {
    TEMP [I] = STR [L];
    L ++;
    I ++;
   } la else {
    TEMP [I] = STR [R & lt];
    R & lt ++;
    I ++;
   }
  }
  // cuando se cierra la transfronterizas tienen que considerar no ha terminado la comparación de ese período
  // porque cada segmento se ordenan por lo que un aumento directo de la temperatura [volver]
  // tramo transfronterizo izquierda
  IF (L> MAD) {
   // Añadir el lado derecho restante de
   la mientras que (R & lt <= derecha) {
    TEMP [I] STR = [R & lt];
    I ++;
    R & lt ++;
   }
  }
  // los límites adecuados
  IF (R & lt> derecha) {
   // se añadió a la restante a la izquierda
   al mismo tiempo que (L <= MAD) {
    TEMP [I] STR = [L];
    I ++;
    L ++;
   }
  }
  System.out.println ( "temp:" + de Arrays.toString (temp));
  // Guardar la matriz temp al número original de STR [] matriz de datos correspondiente al período de funcionamiento
  J = int izquierda;
  int K = 0;
  el tiempo (J <= derecha) {
   STR [J] TEMP = [K];
   J ++;
   K ++;
  }
 }

 

 

 

Supongo que te gusta

Origin www.cnblogs.com/miwujun/p/12664131.html
Recomendado
Clasificación