Hola...de nuevo aki dando lata... :rolleyes:
alguno tiene el codigo de
Ordenacion de datos por mezcla equilibrada? es para una clase de estructura de datos, y no piensen que soy flojo, es solo que ya le heché varias horas y solo no me sale... y me estoy desesperando pues lo necesito :o .. y pues ya sea que me lo pasen o que me ayuden a terminarlo, la partición inicial me sale a la perfeccion, la parte de particion-fusion es la que no me sale, aki les dejo los dos codigos:
import java.io.*;
public class Particion_Inicial{
public Particion_Inicial(){
}
}
public void partiendo(){
boolean band;
int aux,r;
try{
r=atoi(f.readLine());
f2.println(r);
f2.flush();
band=true;
aux=r;
while((oto=f.readLine())!=null){
r=atoi(oto);
if(r>=aux){
aux=r;
if(band==true){
f2.println(r);
f2.flush();
}
else if(band==false){
f3.println(r);
f3.flush();
}
}
else {
aux=r;
if (band==true){
f3.println(r);
f3.flush();
band=false;
}
else{
f2.println(r);
f2.flush();
band=true;
}
}
}
f2.close();
f3.close();
}
e.printStackTrace();
}
}
public static void main
(String arg
[]){ Particion_Inicial pi=new Particion_Inicial();
pi.partiendo();
}
}
el que sigue es el del problema:
import java.io.*;
public class Particion_fusion{
public Particion_fusion(){
}
}
public void fusionando(){
int r1=0,r2=0,aux;
boolean ban1,ban2,ban3;
try{
ban1=true;
ban2=true;
ban3=true;
aux=-32768;
int h=0;
boolean ba=false,bb=false;
while((((otoA=fa.readLine())!=null)||(ban1==false))&&(((otoB=fb.readLine())!=null)||(ban2==false))){
if(ban1==true){
ban1=false;
}
if(ban2==true){
ban2=false;
}
if(r1<r2){
if(r1>=aux){
if(ban3==true){
fc.println(r1);
fc.flush();
}
else{
fd.println(r1);
fd.flush();
}
ban1=true;
aux=r1;
if(ban3==true){
fc.println(r2);
fc.flush();
ban3=false;
}
else {
fd.println(r2);
fd.flush();
ban3=true;//***
}
ban2=true;
aux=-32768;
}
else if(r2>=aux){
if(ban3==true){
fc.println(r2);
fc.flush();
}
else{
fd.println(r2);
fd.flush();
}
ban2=true;
aux=r2;
if(ban3==true){
fc.println(r1);
fc.flush();
ban3=false;
}
else{
fd.println(r1);
fd.flush();
ban3=true;
}
ban1=true;
aux=-32768;
}
}
}
System.
out.
println("------------------------------------"); if(ban1==false){
if(ban3==true){
fc.println(r1);
fc.flush();
while((otoA=fa.readLine())!=null){
//r1=atoi(otoA);
fc.println(r1);
fc.flush();
}
}
else{
fd.println(r1);
fd.flush();
while((otoA=fa.readLine())!=null){
//r1=atoi(otoA);
fd.println(r1);
fd.flush();
}
}
}
if(ban2==false){
if(ban3==true){
fc.println(r2);
fc.flush();
while((otoB=fb.readLine())!=null){
fc.println(r2);
fc.flush();
}
}
else{
fd.println(r1);
fd.flush();
while((otoB=fb.readLine())!=null){
fd.println(r2);
fd.flush();
}
}
}
fc.close();
fd.close();
fa.close();
fb.close();
}
e.printStackTrace();
}
}
public static void main
(String arg
[]){ Particion_fusion pf=new Particion_fusion();
pf.fusionando();
}
}
ya ven que si le eche ganas??? ... el resultado de la primera particion me sale genial... pero el de la particion-fusion... me arroja erroneamente los datos... y pues e revisado el algoritmo 10 veces y no me sale!!! ayuda porfa!!! me base en el algoritmo que se encuentra en el libro de estructura de datos del autor cairo... aki una pagina que tiene el mismo algoritmo... http://sistemas.itlp.edu.mx/tutoriales/estructuradedatos/t712.html
espero sus respuestas... hasta pronto!
Acaso lo pudiste resolver? Tengo el mismo problema.