diff --git a/sorting/bubble.js b/sorting/bubble.js new file mode 100644 index 0000000..36b64d7 --- /dev/null +++ b/sorting/bubble.js @@ -0,0 +1,21 @@ +const bubble = (nums) => { + let done; + + do { + done = true; + + for (let i = 0; i < nums.length; i++) { + if (nums[i] > nums[i + 1]) { + const temp = nums[i]; + nums[i] = nums[i + 1]; + nums[i + 1] = temp; + done = false + } + } + + } while(!done); + + return nums; +} + +module.exports = bubble diff --git a/tests/bubble.test.js b/tests/bubble.test.js new file mode 100644 index 0000000..530542f --- /dev/null +++ b/tests/bubble.test.js @@ -0,0 +1,8 @@ +const test = require('ava'); +const bubble = require('../sorting/bubble'); + +test('bubble sort', t => { + const nums = [1,2,3,6,7,4,9,8,19,13] + + t.deepEqual(bubble(nums), [1,2,3,4,6,7,8,9,13,19]) +})