美文网首页
JS实现快速排序

JS实现快速排序

作者: 天天要加油 | 来源:发表于2018-08-14 18:06 被阅读0次

快速排序用到以下方法

Math.floor->返回小于或等于一个给定数字的最大整数
    Math.floor(0.6); // output: 0
    Math.floor(0.2); //output: 0
    Math.floor(-0.2); // output: -1
    Math.floor(-0.6); // output: -1
splice->向/从数组中添加/删除项目,然后返回被删除的项目, splice会改变原数组的长度。

语法: arrayObject.splice(index,howmany,item1,.....,itemX)
参数:
index->必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany->必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX->可选。向数组添加的新项目。

    var arr = [1, 2, 3, 4, 5];
    var arrRemove = arr.splice(0, 2); // arr = [3, 4, 5]; arrRemove = [1, 2];
    arr.splice(1, 0, 8); // arr = [3, 8, 4, 5]
contact->用于连接两个或多个数组

语法: arrayObject.concat(arrayX,arrayX,......,arrayX)

    var arr1 = [1, 2];
    var arr2 = [3, 4];
    var arrConcat = arr1.concat(arr2);
    console.log(arrConcat) // arrConcat = [1, 2, 3, 4]
push->可向数组的末尾添加一个或多个元素,并返回新的长度

语法:arrayObject.push(newelement1,newelement2,....,newelementX)

    var arr = [1, 2, 3];
    console.log(arr.push(4)); // 4
    console.log(arr); // [1, 2, 3, 4]
快速排序:取中间位置值为基准,剩余数据与其相比较,比基准大放右边,比基准小放左边,递归不断重复这个过程,可得到排序后的数组。
function quickArray(arr) {
        var len = arr.length;
        var leftArr = [];
        var rightArr = [];
        if (len <= 1) {
            return arr;
        }
        var midIndex = Math.floor(len / 2);
        var midNumber = arr.splice(midIndex, 1)[0];
        for (var i = 0; i < len - 1; i++) {
            if (arr[i] < midNumber) {
                leftArr.push(arr[i]);
            } else {
                rightArr.push(arr[i]);
            }
        }
        return quickArray(leftArr).concat([midNumber], quickArray(rightArr));
    }

参考连接: http://www.ruanyifeng.com/blog/2011/04/quicksort_in_javascript.html

相关文章

  • JS实现快速排序

    大致分三步: 1、找基准(一般是以中间项为基准) 2、遍历数组,小于基准的放在left,大于基准的放在right ...

  • JS实现快速排序

    看了一篇通俗易懂的快排文章 快排,下面一步一步 实现整个过程。 快排的基本思想 上面链接的文章对快排的思路提出了一...

  • 快速排序JS实现

    快速排序原理 快速排序的基本思想是选取一个基准值将排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分...

  • JS实现快速排序

    快速排序用到以下方法 Math.floor->返回小于或等于一个给定数字的最大整数 splice->向/从数组中添...

  • JS实现快速排序

  • JS 实现快速排序

    快速排序的思想 (1)在数据集之中,找一个基准点 (2)建立两个数组,分别存储左边和右边的数组 (3)利用递归进行...

  • JS实现快速排序算法

    快速排序 快速排序 由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割...

  • js数组快速排序实现

  • JS实现快速排序算法

    采用了分治的思想(1)在数据集之中,选择一个元素作为"基准"(pivot)。(2)所有小于"基准"的元素,都移到"...

  • 快速排序的JS实现

    From:阮一峰 快速排序(Quicksort)的Javascript实现[https://www.ruanyif...

网友评论

      本文标题:JS实现快速排序

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