function quickSort()

in core/src/main/resources/org/apache/karaf/webconsole/core/behavior/dracula/dracula_algorithms.js [378:391]


function quickSort(arr) {
    /* recursion anchor: one element is always sorted */
    if(arr.length <= 1) return arr;
    /* randomly selecting some value */
    var median = arr[Math.floor(Math.random() * arr.length)];
    var arr1 = [], arr2 = [], arr3 = [];
    for(var i in arr) {
        arr[i] < median && arr1.push(arr[i]);
        arr[i] == median && arr2.push(arr[i]);
        arr[i] > median && arr3.push(arr[i]);
    }
    /* recursive sorting and assembling final result */
    return quickSort(arr1).concat(arr2).concat(quickSort(arr3));
}