bubble-sort-js

Bubble Sort algorithm javascript implementation.

Usage no npm install needed!

<script type="module">
  import bubbleSortJs from 'https://cdn.skypack.dev/bubble-sort-js';
</script>

README

Bubble Sort

Bubble Sort algorithm javascript implementation wth O(n^2) complexity.

Bubble sort has worst-case and average complexity both О(n^2), where n is the number of items being sorted. The significant advantage that bubble sort has over most other implementations, even quicksort, but not insertion sort, is that the ability to detect that thel ist is sorted is efficiently built into the algorithm. When the list is already sorted (best-case), the complexity of bubble sort is only O(n).

Install

$ npm install --save bubble-sort-js

Usage

const bubblesort = require('bubble-sort-js');

// Ascending order
bubblesort([3,1,4,1,5,9,2,6,5,4]);
// => [1,1,2,3,4,4,5,5,6,9]

bubblesort([9,2,8,6,1,3]);
// => [1,2,3,6,8,9]

bubblesort([5,2,4,6,1,3]);
// => [1,2,3,4,5,6]


// Descending order
function comparator(a, b) { return b - a; }

bubblesort([5,2,2,6,1,3], comparator);
// => [6,5,3,2,2,1]

bubblesort([0,0,0,0,0,-1], comparator);
// => [0,0,0,0,0,-1]


// Ascending sort arrays of objects
function orderImages(a, b) { return a.order - b.order };

const images = [
  {href: 'http://path/to/something/awesome', caption: 'Awesome', order: 4},
  {href: 'http://path/to/something/terrifik', caption: 'Terrifik', order: 1},
  {href: 'http://path/to/something/crazy', caption: 'Crazy', order: 3},
  {href: 'http://path/to/something/amazing', caption: 'Amazing', order: 2}
];

bubblesort(images, orderImages);
/*
=> [
    {href: 'http://path/to/something/terrifik', caption: 'Terrifik', order: 1},
    {href: 'http://path/to/something/amazing', caption: 'Amazing', order: 2},
    {href: 'http://path/to/something/crazy', caption: 'Crazy', order: 3},
    {href: 'http://path/to/something/awesome', caption: 'Awesome', order: 4}
  ]
*/