Ich habe einen Vector mit Personen aus einer Datenbank. Da die ID als PrimaryKey nur 1 mal vorhanen sein darf, würde ich den Vector gerne danach sortieren.
Nun habe ich mir eine Funktion geschrieben.
Der Code hier funktioniert und tauscht mir das 1. (Pos. 0) mit dem 3. (Pos. 2) Element in der Liste.
Wenn ich jedoch anstatt der 0 j und anstatt der 2 ein j+1 einsetze, dann schmiert das Programm immer ab.
Kann mir jemand sagen wieso ich die Laufvariablen des BubbleSort hier nicht einsetzen kann? Das sind doch auch nichts anderes als Integer Werte
Nun habe ich mir eine Funktion geschrieben.
Code:
private Vector<Person> Sort(Vector<Person> vec)
{
int i,j;
Person tmp = new Person();
Person p1 = new Person();
Person p2 = new Person();
for(i=0;i<vec.capacity()-1;i++)
{
for(j=0;j<vec.capacity()-i-1;j++)
{
p1 = vec.get(0);
p2 = vec.get(2);
if(Integer.valueOf(p1.getID()).intValue() >= Integer.valueOf(p1.getID()).intValue())
{
tmp = p1;
p1 = p2;
p2 = tmp;
vec.remove(0);
vec.add(0, p1);
vec.remove(2);
vec.add(2, p2);
}
}
}
return vec;
}
Der Code hier funktioniert und tauscht mir das 1. (Pos. 0) mit dem 3. (Pos. 2) Element in der Liste.
Wenn ich jedoch anstatt der 0 j und anstatt der 2 ein j+1 einsetze, dann schmiert das Programm immer ab.
Kann mir jemand sagen wieso ich die Laufvariablen des BubbleSort hier nicht einsetzen kann? Das sind doch auch nichts anderes als Integer Werte