Die Einträge einer Datenbank sollen mit dem Insertion Sort Verfahren nach Datum (aufsteigend) sortiert werden, im Moment werden scheinbar nur die ersten beiden Einträge verglichen und entsprechend sortiert, also irgendwi bei den Schleifendurchläufen liegt wahrscheinlich der Fehler, stehe nur gerade total auf dem Schlauch:
[CODE lang="java" title="MySort - Insertion Sort Verfahren"]public class MySort {
public static void mySort(Comparable[] f) {
// Insertion Sort
for(int i=1; i<f.length; i++) {
for(int j=1; j>0 && (f[j].compareTo(f[j-1]))<0;j--) {
Comparable zwischenspeicher = f[j];
f[j]=f[j-1];
f[j-1]=zwischenspeicher;
}
}
}
}
[/CODE]
[CODE lang="java" title="Interface"]public interface Comparable {
public int compareTo(Comparable other);
}
[/CODE]
[CODE lang="java" title="comparteTo Methode aus der Klasse Lied:"]public class Lied implements Comparable {
// Rest der Klasse ausgeklammert
public int compareTo(Comparable other) {
int value;
// other ist vom Typ Lied
if(other instanceof Lied) {
// vorderes ist aelter
if(this.erscheinungsdatum.compareTo(((Lied) other).getErscheinungsdatum()) > 0) {
value = 1;
}
// vorderes ist neuer
else if(this.erscheinungsdatum.compareTo(((Lied) other).getErscheinungsdatum()) < 0) {
value = -1;
// beide gleich alt
} else {
value = 0;
}
}
// kein Objekt des Typs Lied:
else {
value = 0;
}
return value;
}
}[/CODE]
[CODE lang="java" title="MySort - Insertion Sort Verfahren"]public class MySort {
public static void mySort(Comparable[] f) {
// Insertion Sort
for(int i=1; i<f.length; i++) {
for(int j=1; j>0 && (f[j].compareTo(f[j-1]))<0;j--) {
Comparable zwischenspeicher = f[j];
f[j]=f[j-1];
f[j-1]=zwischenspeicher;
}
}
}
}
[/CODE]
[CODE lang="java" title="Interface"]public interface Comparable {
public int compareTo(Comparable other);
}
[/CODE]
[CODE lang="java" title="comparteTo Methode aus der Klasse Lied:"]public class Lied implements Comparable {
// Rest der Klasse ausgeklammert
public int compareTo(Comparable other) {
int value;
// other ist vom Typ Lied
if(other instanceof Lied) {
// vorderes ist aelter
if(this.erscheinungsdatum.compareTo(((Lied) other).getErscheinungsdatum()) > 0) {
value = 1;
}
// vorderes ist neuer
else if(this.erscheinungsdatum.compareTo(((Lied) other).getErscheinungsdatum()) < 0) {
value = -1;
// beide gleich alt
} else {
value = 0;
}
}
// kein Objekt des Typs Lied:
else {
value = 0;
}
return value;
}
}[/CODE]