Hallihallo, ich hab' gerade versucht den MergeSort zu implementieren und erhalte immer beim append einen OutOfMemory Error.. Kann zufällig jemand den Fehler in diesen beiden Methoden finden oder liegt es villeicht an der Liste (selbsterstellt nach Abi-Vorgaben) ?
Danke
mfG Prime
Java:
public List sortieren(List pList){
Object erstes,letztes;
pList.toFirst();
erstes=pList.getObject();
pList.toLast();
letztes=pList.getObject();
if(erstes==letztes){
return pList;
}
else{
List leftList=new List();
List rightList=new List();
pList.toFirst();
while(pList.hasAccess()){
leftList.append(pList.getObject());
pList.next();
if(pList.hasAccess()){
rightList.append(pList.getObject());
pList.next();
}
}
leftList= sortieren(leftList);
rightList= sortieren(rightList);
return merge(leftList, rightList);
}
}
public List merge(List leftList, List rightList){
List tempList=new List();
while(!leftList.isEmpty() && !rightList.isEmpty()){
leftList.toFirst();
rightList.toFirst();
if(((Integer)leftList.getObject())<=((Integer)rightList.getObject())){
tempList.append(leftList.getObject());
leftList.remove();
}
else{
tempList.append(rightList.getObject());
rightList.remove();
}
}
if(!leftList.isEmpty()){
tempList.concat(leftList);
}
if(!rightList.isEmpty()){
tempList.concat(rightList);
}
return tempList;
}
Danke
mfG Prime
Zuletzt bearbeitet von einem Moderator: