J'ai trois questions sur le code suivant:Essayer de comprendre le code de tri seau
static void funct(int[] list) {
final int N = 20;
java.util.ArrayList[] buckets = new java.util.ArrayList[N];
for(int i = 0; i< list.length; i++) {
int key = list[i];
if(buckets[key] = null)
buckets[key].add(list[i]);
}
int k = 0
for(int i = 0; i <buckets.length; i++) {
if(buckets[i] != null) {
for(int j = 0; j< buckets[i].size(); j++)
list[k++] = (Integer)buckets[i].get(j);
}
}
}
L'algorithme a une lacune majeure, est-ce que cela ne fonctionnera que jusqu'à 20 éléments et que cela a une faible complexité?
Le point du code est de trier une liste d'éléments - ils sont placés dans un tableau, puis mis dans des compartiments, puis ils sont mis à nouveau des baquets dans le tableau?
Heres celui sur lequel je suis perplexe, comment modifieriez-vous la méthode afin que vous puissiez passer un tableau qui contient des objets d'une autre classe au lieu d'entiers?