Hallo, ich soll ein Programm schreiben welches den MergeSort algo als generic behandeln soll.
Wir sollen die Klasse Abstract Sort verwenden:
Merge:
Main:
Das Problem ist auf der konsole gibt der nur at line 20 raus?
Wir sollen die Klasse Abstract Sort verwenden:
Java:
//
// Abstrakte Klasse der Sortierklassen
//
public abstract class Sort <T extends Comparable<T>> {
//
// sort sortiert das Feld a.
//
public abstract void sort(T[] a);
}
Merge:
Java:
public class DC <T extends Comparable<T>> extends Sort<T>{
public void sort(T[] a){
Comparable[] tmp = new Comparable[a.length];
reksort(a,tmp,0,a.length-1);
}
private void reksort(T[] a, Comparable[] tmp, int l, int r){
if(l<r){
int center = (l+r)/2;
reksort(a,tmp,l,r);
reksort(a,tmp,center+1,r);
fuse(a,tmp,l,center+1,r);
}
}
private void fuse(T[] a, Comparable[] tmp, int lpos, int rpos, int rend){
int lend = rpos-1;
int tmppos = lpos;
int elements = rend-lpos+1;
while(lpos <= lend && rpos <= rend){
if(a[lpos].compareTo(a[rpos])<=0)
tmp[tmppos++] = a[lpos++];
else
tmp[tmppos++] = a[rpos++];
}
while(lpos <= lend){
tmp[tmppos++] = a[lpos++];
}
while(rpos<=rend){
tmp[tmppos++] = a[rpos++];
}
for(int i = 0; i<elements;i++, rend--){
a[rend] = (T)tmp[rend];
}
}
}
Main:
Java:
public class Main {
public static void main(String[] args){
DC<Integer> test = new DC<Integer>();
Integer[] a = {22,21,33,11,5,3,7};
test.sort(a);
}
}
Das Problem ist auf der konsole gibt der nur at line 20 raus?