javascriptで実現したクイックソート

886 ワード

/*         */
    function Q_Sort(array, l, r) {
        /*      ,                     ,      */
        if (l < r) {
            /*      */
            var pivot = array[l],
                i = l;
            /*    */
            for (j = l + 1 ; j <= r ; j++) {
                /*         */
                if (array[j] <= pivot) {
                    /*    ,            ,     */
                    swap(array, ++i , j);
                }
            }
            /*    */
            swap(array, l, i);
            /*             */
            Q_Sort(array, l, i - 1);
            Q_Sort(array, i + 1, r);
        }
    }
    /*         */
    function swap(array , x, y) {
        var t = array[x];
        array[x] = array[y];
        array[y] = t;
    }

    var array = [1,3,5,7,9,2,4,6,8,10];
    Q_Sort(array, 0, 9);
    console.log(array);