Flashsort

Efficient distribution sort.

Best O(n) Avg O(n) Worst O(n^2) Space O(n) Stable No In-place Yes Distribution

How it works

Efficient distribution sort.

Implementation

function flashSort(arr) {
  const n = arr.length, m = Math.floor(0.45 * n);
  let min = arr[0], maxIdx = 0;
  for (let i = 1; i < n; i++) {
    if (arr[i] < min) min = arr[i];
    if (arr[i] > arr[maxIdx]) maxIdx = i;
  }
  if (arr[maxIdx] === min) return;
  const c1 = (m-1) / (arr[maxIdx] - min);
  // Classify, permute, then insertion sort buckets
}