Hallo,
ich will Integer sortieren. Dabei kann ich diese als 32 Zeichen lange Folge von 0 und 1 auffassen und diese mit dem verallgemeinerten Bucketsortverfahren sortieren.
Dabei ist bis jetzt folgendes herausgekommen:
Was sagt ihr dazu. Ich weis nicht ganz, wie ich das mit Binärzahlen testen kann. Aber würde es so funktionieren?
ich will Integer sortieren. Dabei kann ich diese als 32 Zeichen lange Folge von 0 und 1 auffassen und diese mit dem verallgemeinerten Bucketsortverfahren sortieren.
Dabei ist bis jetzt folgendes herausgekommen:
Java:
public static void sort(List<Integer> numbers) {
Queue<Integer> tmp =new LinkedList<Integer>();
for (int i = 0; i < numbers.size(); i++) {
tmp.offer(numbers.get(i));
}
List<Integer>[] bucket = new ArrayList[2];
for(int i=0; i<bucket.length; i++) {
bucket[i] = new ArrayList<Integer>();
}
for(int k=32; k>0;k--) {
//clear
for(int i=0;i<bucket.length;i++) {
bucket[i].clear();
}
while(!tmp.isEmpty()) {
Integer oberstesEl =tmp.element();
String el =String.valueOf(oberstesEl);
if(el.charAt(k-1)==0) {
bucket[0].add(oberstesEl);
}
else {
bucket[1].add(oberstesEl);
}
tmp.remove();
}
for(int i=0; i<bucket.length;i++) {
for (Integer j : bucket[i]) {
tmp.add(j);
}
}
}
}
Was sagt ihr dazu. Ich weis nicht ganz, wie ich das mit Binärzahlen testen kann. Aber würde es so funktionieren?