美文网首页
数组快排

数组快排

作者: 刘大 | 来源:发表于2018-12-20 13:43 被阅读0次

有空再补描述。

function quickSort(array) {
    function sort(arr,left = 0,right = arr.length - 1) {
        if (left >= right) { return arr; }
        let i = left, j = right, baseVindex = j;
        const len = arr.length, baseV = arr[baseVindex];
        while (i<j) {
            while (i<len && i<j) {
                if (arr[i] > baseV) {
                    // let temp = arr[i];
                    // arr[i] = baseV;
                    // arr[baseVindex] = arr[i];
                    // baseVindex = i;
                    [arr[i], arr[baseVindex], baseVindex] = [arr[baseVindex], arr[i], i];
                    break;
                }
                i ++;
            }
            while (j>=0 && j>i) {
                if (arr[j] < baseV) {
                    [arr[j], arr[baseVindex], baseVindex] = [arr[baseVindex], arr[j], j];
                    break;
                }
                j --;
            }
        }
        // arguments.callee(arr,left,baseVindex-1);
        // arguments.callee(arr,baseVindex+1,right);
        sort(arr,left,baseVindex-1);
        sort(arr,baseVindex+1,right);
    }
    let arr = array.concat();
    sort(arr)
    return arr;
}

相关文章

  • 数组快排

    有空再补描述。

  • 快排,递归,非递归,三向切分,去掉边界条件

    快排 快排的思想: 典型的分治,将数组分成两个子数组,并且分别对子数组排序,且子数组的排序也是分治。 快排和归并排...

  • 30,合并数组-Map.sort

    当数组长度小于等于10的时候,采用插入排序,大于10的时候,采用快排。对于长度大于1000的数组,采用的是快排与插...

  • 算法 -- 排序

    快排 原理 快排利用分治思想。快排的思想是这样的:如果要排序数组中下标从 p 到 r 之间的一组数据,我们选择 p...

  • 面试常见算法总结-数组

    数组 1、从一个给定的、无序的数组中,找出第二小的数值 方法一:先按递增顺序对数组排序(堆排、快排、归并排序等),...

  • 快排和三路快排

    参考自 《算法》第四版 快排 三路快排 适用于数组里有较多重复元素

  • NSSet和排序方法、数组去重

    NSSet 去掉数组中重复的数NSSet方法 NSDictionary方法 数组排序 冒泡排序 sort方法排序(快排)

  • 快速排序

    经典快排:取数组中最后一个位置的数,小于等于这个数的放左区域,大于这个数的放右区域。改进的随机快排:随机从数组中取...

  • 快速排序

    快排核心操作 传统快排核心操作partition会基于一个枢轴元素pivot将数组划分为三部分:<= pivot、...

  • 数据结构基础知识

    1.哈希(Hash) 计数排序中的桶,比快排快数组就是哈希 2.队列 (Queue) 先进先出可以用数组实现操作用...

网友评论

      本文标题:数组快排

      本文链接:https://www.haomeiwen.com/subject/hpdykqtx.html