• 技术文章 >Web开发 >JavaScript

    js数组排序的几种方法

    宋雪维宋雪维2021-01-05 10:37:40原创7813

    谈到js数组,我们经常会想到js数组的操作方法。在众多操作方法中,对数组排序是十分重要的,数组排序有利于我们观察使用数组。本文介绍js数组最常见也是最常使用的5个方法,即1、sort方法;2、冒泡排序;3、插入排序;4、快速排序;5、选择排序。

    1、sort方法

    用于对数组的元素进行排序,是按照字符编码的顺序进行排序,会改变原数组的值,所以如果直接使用,可能无法达到我们想要的效果

    1

    2

    3

    4

    5

    6

    7

    var arr = [6, 3, 8, 7, 1, 5, 4, 2, 9];

    arr.sort(function(a, b){

        return a - b;//升序排列

        //return b - a;//降序排列

    });

    //结果是[1, 2, 3, 4, 5, 6, 7, 8, 9]

    console.log(arr);

    2、冒泡排序

    先选出数值,拍到数组最后面,之后再选出第二大的值排到倒数第二位,依次类推。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    function bubbleSort(arr)

        for (var max=arr.length;max>0;max--) {

            for (var i=0;i<max;i++) {

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

                    var maxValue = arr[i];

                    arr.splice(i,0,arr[i+1]);

                    arr.splice(i+2,1);

                }

            }

        }

        return arr;

    }

    3、插入排序

    是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    var insertSort = function( 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、快速排序

    首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,然后对左右部分递归。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    function selectSort(array) {

    var k = array.length;

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

    var minIndex = i;

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

    if(array[j] < array[minIndex]) {

    minIndex = j;

    }

    }

    var temp = array[i];

    array[i] = array[minIndex];

    array[minIndex] = temp;

    }

    return array;

    }

    5、选择排序

    每一趟从待排序的数据元素中选出最小(或)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    var b=0//设置用来调换位置的值

    var a=[1,9,33,2,5,34,23,98,14]

    for(var i=0;i<a.length;i++){

        for(var j=i;j<a.length;j++){

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

                b=a[j]

                a[j]=a[j+1]

                a[j+1]=b

            }

        }

    }

    console.log(a)//[1, 2, 5, 9, 14, 23, 33, 34, 98]

    以上就是js数组排序的几种常见方法,大家可以代入上述代码直接使用哦~

    专题推荐:js数组排序
    上一篇:js数组排序冒泡排序 下一篇:js数组遍历方法

    相关文章推荐

    • Python的excel处理操作• 如何使用python中schedule模块?• 如何使用python中的optionparser模块?• 如何使用Python的telnetlib模块?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网