UNPKG

jaw

Version:

Parasitize CSS to JSX for migi

47 lines (46 loc) 1.04 kB
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; };