elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Dividir un Vector<objetoQueQuieras> en un array de vectores de n componentes
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Dividir un Vector<objetoQueQuieras> en un array de vectores de n componentes  (Leído 8,384 veces)
rixi15

Desconectado Desconectado

Mensajes: 66



Ver Perfil
Dividir un Vector<objetoQueQuieras> en un array de vectores de n componentes
« en: 1 Noviembre 2012, 20:35 pm »

Código
  1.  
Hola buenas,
 a veces tenemos un Vector<E> de objetos y queremos dividirlo en partes iguales y guardar esas partes en un array. Por ejemplo si queremos procesar esos objetos
en un mismo procesador/computador no necesitamos dividir el vector que los contiene, pero si trabajamos de forma concurrente o distribuída es posible que queramos dividirlo en N partes iguales
para repartir el trabajo entre máquinas.
Este código se me ha ocurrido para hacer la división en n partes iguales (la última parte puede ser mayor que las demas si la longitud del vector/N != 0)


Código
  1. /*
  2. * Recibe un vector de Worker y lo divide en n vectores de Worker de manera
  3. * que los n-1 primeros tienen (v.size()/n) componentes y último tiene las restante componentes.
  4. */
  5. public static Vector<Integer>[] dividirVector(Vector<Integer> v, int n){
  6. Vector<Integer> enteros[] = new Vector[n];
  7. if(v.size()>=n){
  8. int longitud = v.size()/n;
  9. int restantes = v.size();
  10. for(int i = 0;i<n;i++){
  11. enteros[i] = (Vector<Integer>) new Vector<Integer>();
  12. if(i==n-1){
  13. for (int j=0;j<restantes;j++){
  14. enteros[i].add(v.get(i*longitud+j));
  15. }
  16. }
  17. else{
  18. for (int j=0;j<longitud;j++){
  19. enteros[i].add(v.get(i*longitud+j));
  20. }
  21. }
  22. restantes = restantes - longitud;
  23. }
  24.  
  25. return enteros;
  26. }
  27. else{
  28. enteros[0]=(Vector<Integer>)v;
  29. return enteros;
  30. }
  31. }

espero que pueda servir de ayuda, un saludo


« Última modificación: 2 Noviembre 2012, 13:26 pm por rixi15 » En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: Dividir un Vector<objetoQueQuieras> en un array de vectores de n componentes
« Respuesta #1 en: 2 Noviembre 2012, 01:13 am »

muy buen aporte felicitaciones pero te recomiendo que lo pongas en con etiquetas de codigo


En línea

rixi15

Desconectado Desconectado

Mensajes: 66



Ver Perfil
Re: Dividir un Vector<objetoQueQuieras> en un array de vectores de n componentes
« Respuesta #2 en: 2 Noviembre 2012, 13:26 pm »

gracias por el comentario, ya he corredigo los colores, no me habia dado cuenta gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Stock Vector - Fuego[Diseño][Vectores][BS-FSE-FS-DL]
Diseño Gráfico
EmirSc 2 8,244 Último mensaje 24 Enero 2011, 04:05 am
por EmirSc
Vector de vectores C++
Programación C/C++
anonimo12121 6 11,191 Último mensaje 23 Febrero 2013, 22:34 pm
por anonimo12121
intercambio componentes vector
Programación C/C++
nilcosta 5 2,496 Último mensaje 27 Noviembre 2016, 22:52 pm
por engel lex
dividir un vector y comprar
Programación C/C++
emizohe 1 1,764 Último mensaje 13 Enero 2017, 18:25 pm
por engel lex
javascript - Vectores con componentes de tipo objeto.js
Desarrollo Web
TickTack 0 1,580 Último mensaje 11 Abril 2018, 15:21 pm
por TickTack
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines