snippetjavascriptTip
Bubble sort
Viewed 0 times
sortjavascriptbubble
Problem
Bubble sort is a simple sorting algorithm that repeatedly steps through the array, compares adjacent elements and swaps them if they are in the wrong order. The pass through the array is repeated until the array is sorted.
- Declare a variable,
swapped, that indicates if any values were swapped during the current iteration. - Use the spread operator (
...) to clone the original array,arr. - Use a
forloop to iterate over the elements of the cloned array, terminating before the last element. - Use a nested
forloop to iterate over the segment of the array between0andi, swapping any adjacent out of order elements and settingswappedtotrue.
Solution
const bubbleSort = arr => {
let swapped = false;
const a = [...arr];
for (let i = 1; i < a.length; i++) {
swapped = false;
for (let j = 0; j < a.length - i; j++) {
if (a[j + 1] < a[j]) {
[a[j], a[j + 1]] = [a[j + 1], a[j]];
swapped = true;
}
}
if (!swapped) return a;
}
return a;
};
bubbleSort([2, 1, 4, 3]); // [1, 2, 3, 4]- Use the spread operator (
...) to clone the original array,arr. - Use a
forloop to iterate over the elements of the cloned array, terminating before the last element. - Use a nested
forloop to iterate over the segment of the array between0andi, swapping any adjacent out of order elements and settingswappedtotrue. - If
swappedisfalseafter an iteration, no more changes are needed, so the cloned array is returned.
The algorithm has an average time complexity of
O(n^2), where n is the size of the input array.Code Snippets
const bubbleSort = arr => {
let swapped = false;
const a = [...arr];
for (let i = 1; i < a.length; i++) {
swapped = false;
for (let j = 0; j < a.length - i; j++) {
if (a[j + 1] < a[j]) {
[a[j], a[j + 1]] = [a[j + 1], a[j]];
swapped = true;
}
}
if (!swapped) return a;
}
return a;
};
bubbleSort([2, 1, 4, 3]); // [1, 2, 3, 4]Context
From 30-seconds-of-code: bubble-sort
Revisions (0)
No revisions yet.