1.0.1 • Published 7 years ago

quick-sort.js v1.0.1

Weekly downloads
1
License
ISC
Repository
github
Last release
7 years ago

quick-sort.js - Generic quick sort implementation for js

quick-sort.js - Generic quick sort implementation for js. The algorithm takes O(n log n) comparisons to sort n items. In the worst case, it makes O(n2) comparisons, though this behavior is rare. Quick sort on Wikipedia

##Installation

npm install quick-sort.js

###Usage

###Full example

var QSort = require('quick-sort.js');

var getter = function(iterable, index) {
    return iterable[index];
};

var setter = function(iterable, value, index) {
  iterable[index] = value;  
};

var comparator = function(elem1, elem2) {
  return elem2 - elem1;// desc sort
};

var list = [1,4,2,3,7,9,3,6,7,9,10,11,12,13,14,15,16,17,18,19,20];

console.log(list);

QSort(list, list.length, getter, setter, comparator);//desc sort

console.log(list);

####Simple example

var QSort = require('quick-sort.js');
var list = [1,4,2,3,7,9,3,6,7,9,10,11,12,13,14,15,16,17,18,19,20];

console.log(list);

QSort(list, list.length);//desc sort

console.log(list);

##API

####QSort(iterable, length, [[fnGetter, fnSetter], fnCompare])

  • iterable: object like array
  • length: length or iterable
  • fnGetter: function for getting a element from iterable
    • fnGetter(iter, index)
    • Optional, if not given, will use bracket syntaxe: iter[index]
  • fnSetter: function for setting a element from iterable

    • fnGetter(iter, value,index)
    • Optional, if not given, will use bracket syntaxe: iter[index] = value
  • fnCompare(elem1, elem2): function for comparing two elem of iterable

    • Optional, if not given, will use : elem1 - elem2