Javascript常用的数组排序方法

1. Javascript的 sort() 方法最常用最快的方法!

  • 定义:把数组按大小顺序排列
  • @params:可以没有,也可以是函数
  • @return:排好序后的数组
  • 是否改变原数组:改变
使用方法:arr.sort():SORT方法中如果不传递参数,是无法处理10以上数字排序的(它默认按照每一项第一个字符来排,不是我们想要的效果)
  • 想要实现多位数正常排序,需要给SORT传递一个函数,函数中返回a-b实现升序,返回b-a实现降序:
  • arr.sort(function(a,b){return a-b;});
  • 可用箭头函数表示:arr.sort((a,b) => a-b);
【升序】
1.png
【降序】
2.png

2. 冒泡排序(从后向前)

3.png
点击链接可复制如上代码 控制台查看输出

复制代码

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个位置。
  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了最后一个。
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

3. 快速排序:递归思想,两边快速的排序,冒泡排序的改进

4.png
点击链接可复制如上代码 控制台查看输出

复制代码

    Math.floor(x)方法是向下取整,返回小于或等于x的最接近的整数。
    splice(index,num,item)方法是向数组中添加项目,或是从数组中删除项目,并返回被删除的项目。
  1. index是整数,被操作项目所在的位置(必须)

  2. num是整数,要删除的项目的数量,如果为0,表示不删除(必须)

  3. item是向数组中添加的新项目,可以是多个(可选)

    push()方法是向数组末尾添加一个或多个新项目并返回新数组的长度
    concat()方法连接两个或多个数组,不会改变原有数组,返回一个新数组

4. 插入排序

5.png
点击链接可复制如上代码 控制台查看输出

复制代码

  1. 从第一个元素开始,该元素可以认为已经被排序
  2. 取出下一个元素,在已经排序的元素序列中扫描
  3. 如果该元素(已排序)大于新元素,将该元素移到下一位置
  4. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
  5. 将新元素插入到下一位置中
  6. 重复步骤2

5.选择排序

6.png
点击链接可复制如上代码 控制台查看输出

复制代码

  1. 在未排序序列中找到最小(大)元素
  2. 并存放到排序序列的起始位置
  3. 然后,再从剩余未排序元素中继续寻找最小(大)元素
  4. 然后放到已排序序列的末尾。
  5. 以此类推

6. 原生 javascript 数组排序

7.png

方法/步骤

1.获取数组中最大的元素
8.png
2.把最大值放到数组最后
  • 定义一个中间变量来交换最大值和最后一个元素的值;
  • 定义一个变量来保存最大值所在的位置;
9.png
3.使用第二重循环来执行第2步:
10.png
4.把第3步封装在函数中:
11.png

注意事项:

1.数字排序为升序排列!
2.这种方法会改变原始数组!

你可能感兴趣的:(Javascript常用的数组排序方法)