1.1 KiB
1.1 KiB
title, type, language, tags, cover, dateModified
| title | type | language | tags | cover | dateModified | ||
|---|---|---|---|---|---|---|---|
| Bubble sort | snippet | javascript |
|
sail-away-2 | 2020-12-29T12:18:58+02:00 |
Sorts an array of numbers, using the bubble sort algorithm.
- 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. - If
swappedisfalseafter an iteration, no more changes are needed, so the cloned array is returned.
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]