static L pixelsByDescendingBrightness(IBWImage image) { float[] data = image.toFloatArray(); int n = l(data); int[] indices = new[n]; for i to n: indices[i] = i; timSortIntArrayWithComparator(indices, (i, j) -> cmp(data[j], data[i])); ret listFromFunction(n, i -> ptFromPixelIndex(indices[i])); }