Bubble Sort

Ayumi Tanaka
Algorithm Novice
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]
  1. If arr[j] is greater than arr[j + 1], currentJ will be arr[j]. Also, arr[j] will be currentJ, so that arr[j + 1] will be currentJ.
  2. Iterate 1. until j become to be equal to arr.length-1. (Which means it would be conditioned j < arr.length)
  3. Iterate 1. - 2. until i become to be equal to arr.length-1. (Which means it would be conditioned i < 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]

--

--