viernes, 4 de marzo de 2011

Combinaciones sin repetición en Java (II)

Ya vimos en otro post un método recursivo para calcular las combinaciones sin repetición de una lista de elementos y ahora vamos a ver como hacerlo de forma iterativa con un iterador. La forma de usar este iterador sería así:

IteradorCombinacion it = new IteradorCombinacion(n, m);
  Iterator s = it.iterator();
  ArrayList l2 = new ArrayList();

  while (s.hasNext()) {

   List listares = (List) s.next();
    l2.add(listares);
    
  }


Siendo n la lista de elementos y m el Integer que define el tamaño de las combinaciones, todas las soluciones estarán en l2. En cuanto al rendimiento este método es unas 400% más rápido aproximadamente que el recursivo visto en el otro post.

La clase IteradorCombinacion.java lo podéis descargar aquí. ¡Espero que os sea de utilidad!

Si tienen alguna duda sobre este artículo o algún otro tema en el que pueda ser útil, no dude en mandarme un mail a: bobsfera@gmail.com o escribe un comentario!

3 comentarios:

  1. Hola, Muchas gracias por la información¿podrías darme pistas sobre dónde has encontrado el algoritmo que te da las diferentes combinaciones?

    ResponderEliminar
    Respuestas
    1. Pues sinceramente, el algoritmo lo hicimos entre unos amigos en la facultad,el año pasado.
      Espero que te sirva! ;)

      Eliminar