Bubble Sort
Published in
2 min readOct 1, 2020
Q. Write an algorithm that performs bubble sort on a given array.
let nums = [3, 2, 1];
const bubbleSort = function (arr) { for (let i = 0; i < arr.length; i++) { for (let j = 0; j < arr.length; j++) { if (arr[j] > arr[j + 1]) { let currentJ = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = currentJ; } } } return arr;}console.log(bubbleSort(nums));// should be [ 1, 2, 3]
- If
arr[j]
is greater thanarr[j + 1]
,currentJ
will bearr[j]
. Also,arr[j]
will becurrentJ
, so thatarr[j + 1]
will becurrentJ
. - Iterate 1. until
j
become to be equal toarr.length-1
. (Which means it would be conditionedj < arr.length
) - Iterate 1. - 2. until
i
become to be equal toarr.length-1
. (Which means it would be conditionedi < arr.length
)
1st loop (i)1st loop (j)j = 0
arr[0] > arr[1] // ? 3 > 2 // True
currentJ = arr[0] = 3
3 = arr[1]
arr[1] = currentJ = 3
[[3, 2], 1] => [[2, 3], 1]2nd loop (j)j = 1
arr[1] > arr[2] // ? 3 > 2 // True
currentJ = arr[1] = 3
3 = arr[2]
arr[2] = currentJ = 3
[2, [3, 1]] => [2, [1, 3]]2nd loop (i)1st loop (j)j = 0
arr[0] > arr[1] // ? 2 > 1 // True
currentJ = arr[0] = 2
2 = arr[1]
arr[1] = currentJ = 2
[[2, 1], 3] => [[1, 2], 3]Return [ 1, 2, 3]