class Inters {
float ang = random(0,10);
}
void setup() {
ArrayList<Inters> x = new ArrayList<Inters>();
for(int i = 0 ; i < 20; i++) x.add(new Inters());
mergesort(x);
for(int i = 0; i < x.size(); i++) println(x.get(i).ang);
}
void mergesort(ArrayList<Inters> inters) {
if(inters.size() <= 1) return;
ArrayList<Inters> left = new ArrayList<Inters>();
ArrayList<Inters> right = new ArrayList<Inters>();
for(int i = 0 ; i < inters.size(); i++) {
if(i < inters.size() / 2) left.add(inters.get(i));
else right.add(inters.get(i));
}
mergesort(left);
mergesort(right);
for(int i=0,j=0,k=0; i < inters.size(); i++) {
if(k >= right.size() || (j < left.size() && left.get(j).ang < right.get(k).ang)) {
inters.set(i, left.get(j++));
}else {
inters.set(i, right.get(k++));
}
}
} Mergesort for Processing and Processing.js
Since Processing.js does not support Java’s Arrays.sort or Collections.sort, I recommend writing your own sort. Here’s an example mergesort: