DEV Community

Discussion on: Tiniest bubble sort on the net?

 
jpantunes profile image
JP Antunes • Edited

You may very well be right :-)

imho, the function signature doesn't count as a LOC... however, in my code I set a default value in a function parameter but then use it as an argument, so I believe have to count it as a line.

The alternative would be:

const bubblie = (arr) => {
  let swaps = false;
  arr.forEach((e,i) => { e > arr[i+1] ? ([arr[i], arr[i+1]] = [arr[i+1], arr[i]], swaps = true) : false });
  return !swaps ? arr : bubblie(arr, false);
}

edit: now that I think about it one more time, I could use the fact that 'undefined' evaluates to false and then it would be just 2 lines of code :-)

const bubblie = (arr, swaps) => {
  arr.forEach((e,i) => { (e > arr[i+1]) ? ([arr[i], arr[i+1]] = [arr[i+1], arr[i]], swaps = true) : false });
  return swaps ? bubblie(arr, false) : arr;
}