‚̧Novel Preposterous Mockery
    Wondering what‚Äôs next for npm?Check out our public roadmap! ¬Ľ

    bogosort

    1.0.1¬†‚Äʬ†Public¬†‚Äʬ†Published

    Bogosort

    The well known Bogosort sorting algorithm for JavaScript

    The algorithm

    Bogosort, also known as Monkeysort or Stupidsort is a quite simple sorting algorithm rarely used in production.

    The idea is to shuffle a collection as long as it is not sorted.

    // Input: Array
    while( !sorted(Array) )
        shuffle(Array)

    Shuffle

    Bogosort uses a modern variant of the Fisher-Yates shuffle, also known as the Durstenfeld shuffle algorithm. It also relies on the broken Math.random().

    // Input: Array of length n
    for¬†i¬†from¬†n¬†‚ąí¬†1¬†to¬†1¬†do
        j = random from 0 to i
        exchange a[j] and a[i]

    API

    Bogosort is exposed via Universal Module Definition (UMD). Thus, you can use it in your browser, in a require.js environment as well as in node or any bundled project. At also comes with a minified version and a source map.

    Bogosort exposes a function bogosort() that takes an array of numbers and returns a sorted copy of it. The original array will not be mutated.

    var bogosort = require('bogosort');
     
    var sorted = bogosort([6, 3, -1, 19, 33, 12]);

    The bogosort() function also has a function property bogosort.measure() that returns an object containing the sorted collection as well as number of rounds it took to sort it.

    var bogosort = require('bogosort');
     
    var sorted = bogosort.measure([8, 3, 99, -12, -4, 8, 9, 11, 183, 12, 33]);
     
    console.log('Sorted collection: ', sorted.result);
    console.log('Rounds it took: ', sorted.rounds);

    The example.js file contains an example of that.

    Building it

    To build it yourself just checkout the repository and run npm install. All important commands are run using npm.

    # Run tests 
    npm test
     
    # Run the example 
    npm start
     
    # Build the minified version 
    npm run build

    Install

    npm i bogosort

    DownloadsWeekly Downloads

    2

    Version

    1.0.1

    License

    Apache-2.0

    Last publish

    Collaborators

    • avatar