快速 排序 javascript实现

Posted 代小代

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速 排序 javascript实现相关的知识,希望对你有一定的参考价值。

 //快速排序
        function QSort(L, low, high) {
            var pivot;
                while(low<high)
                {
                    pivot = Partition(L, low, high);//将L一分为二
                    QSort(L, low, pivot - 1);
                    low = pivot + 1;//采用迭代而不是递归的方法缩减堆栈深度,从而提高整体性能!
                }
        }
        function swap(L, l, h) {
            var temp = L[h];
            L[h] = L[l];
            L[l] = temp;
        }
        function Partition(L, low, high) {
            //三数取中优化算法 防止最小值过大或者过小
            var pivotkey,temp;
            var m = low + (high - low) / 2;
            m = Math.floor(m);
            if (L[low] > L[high]) {
                swap(L, low, high);
            }
            if (L[m] > L[high])
                swap(L, m, high);
            if (L[m]>L[low])
                swap(L, low, m);
            pivotkey = L[low];
            temp = pivotkey;
            while (low < high) {
                while (low<high&&L[high]>=pivotkey) {//找到比pivotkey小的值的下标,然后把当前值赋值给L[low]
                    high--;
                }
                L[low] = L[high];
                while (low<high&&L[low]<=pivotkey) {
                    low++;
                }
                L[high] = L[low];
            }
            L[low] = temp;
            return low;
        }

        var a = [1, 4, 2, 5, 7, 8, 9, 0, 3, 2];
            //MereSort(l);
        //MergeSort2(l);
        QSort(a, 0, a.length - 1);
        console.log(a);

以上是关于快速 排序 javascript实现的主要内容,如果未能解决你的问题,请参考以下文章

快速排序-递归实现

快速排序(QuickSort)的Javascript实现

2.排序算法实现(JavaScript版)-冒泡-选择-快速排序

译文:18个实用的JavaScript代码片段,助你快速处理日常编程任务

javascript实现快速排序算法

JavaScript实现快速排序算法