Sorting Algorithms (bubble sort, merge sort)
What advanced optimization technique is implemented in this bubble sort variant?
function bubbleSortOptimized(arr) {
let n = arr.length;
for(let i = 0; i < n; i++) {
let lastSwap = 0;
for(let j = 0; j < n - i - 1; j++) {
if(arr[j] > arr[j + 1]) {
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
lastSwap = j;
}
}
n = lastSwap + 1;
}
return arr;
}