UNPKG

jaw

Version:

Parasitize CSS to JSX for migi

51 lines (49 loc) 1.12 kB
define(function(require, exports, module){'use strict'; function quickSort(arr, begin, end, compare) { if (begin >= end) { return; } var i = begin, j = end, p = i, n = arr[p], seq = true; outer: while (i < j) { if (seq) { for (; i < j; j--) { if (compare && compare.call(arr, n, arr[j]) || !compare && n > arr[j]) { swap(arr, p, j); p = j; seq = !seq; continue outer; } } } else { for (; i < j; i++) { if (compare && compare.call(arr, arr[i], n) || !compare && n < arr[i]) { swap(arr, p, i); p = i; seq = !seq; continue outer; } } } } quickSort(arr, begin, p, compare); quickSort(arr, p + 1, end, compare); } function swap(arr, a, b) { var temp = arr[a]; arr[a] = arr[b]; arr[b] = temp; } module.exports = function (arr, compare) { if (!Array.isArray(arr)) { throw new Error('quick sort need an array'); } if (arr.length < 2) { return arr; } quickSort(arr, 0, arr.length - 1, compare); return arr; };});