美文网首页
javascript中常用的排序方法:

javascript中常用的排序方法:

作者: 007_2278 | 来源:发表于2017-10-22 17:37 被阅读4次

    1.冒泡排序:

      function bubbleSort(arr) {

                for(var i = 0; i < arr.length - 1; i++) {  // 没走一次,会找到相应的最大的数

                    for(var j = 0; j < arr.length - 1 - i; j++) {  // 比较相邻之间数的大小,如果前面比后面大,交换

                        if(arr[j] > arr[j+1]) {

                            var temp = arr[j];

                            arr[j] = arr[j+1];

                            arr[j+1] = temp;

                        }

                    }

                }

                return arr;

            }

    2.选择排序

    function selectionSort(arr) {

        var len = arr.length;

        var minIndex, temp;

        for (var i = 0; i < len - 1; i++) {

            minIndex = i;

            for (var j = i + 1; j < len; j++) {

                if (arr[j] < arr[minIndex]) {    //寻找最小的数

                    minIndex = j;                //将最小数的索引保存

                }

            }

            temp = arr[i];

            arr[i] = arr[minIndex];

            arr[minIndex] = temp;

        }

        return arr;

    }

    3.插入排序

    function insertionSort(arr) {

        var len = arr.length;

        var preIndex, current;

        for (var i = 1; i < len; i++) {

            preIndex = i - 1;

            current = arr[i];

            while(preIndex >= 0 && arr[preIndex] > current) {

                arr[preIndex+1] = arr[preIndex];

                preIndex--;

            }

            arr[preIndex+1] = current;

        }

        return arr;

    }

    4.希尔排序

    function shellSort(arr) {

        var len = arr.length,

            temp,

            gap = 1;

        while(gap < len/3) {          //动态定义间隔序列

            gap =gap*3+1;

        }

        for (gap; gap> 0; gap = Math.floor(gap/3)) {

            for (var i = gap; i < len; i++) {

                temp = arr[i];

                for (var j = i-gap; j > 0 && arr[j]> temp; j-=gap) {

                    arr[j+gap] = arr[j];

                }

                arr[j+gap] = temp;

            }

        }

        return arr;

    }

    相关文章

      网友评论

          本文标题:javascript中常用的排序方法:

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