JS常用排序方法实例代码解析

 更新时间:2020年03月03日 12:16:53   作者:东城以东  
这篇文章主要介绍了js常用排序方法实例代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

有些代码一两个月都会忘了,有空多做下总结,记录下来,等需要用到的时候可以来翻翻总结的博客。写技术博客,对自己是一种总结,对别人,是一种参考。

1.sort()方法

var ar1=[2,4,6,8,1,3]
var ar2=[2,16,36,8,56]
ar1.sort()
ar2.sort()//这个方法值只能排序第一位数 也可以字符串进行排序
console.log(ar1)//[1,2,3,4,6,8]
console.log(ar2)//[16, 2, 36, 56, 8]

ar2.sort(function(a,b){
  return a-b //a-b为升序
  //return b-a //b-a为降序
})
console.log(ar2)//[2, 8, 16, 36, 56]

2.reverse()方法

var ar1=[2,4,6,8,1,3]
ar1.reverse()//此方法为倒序,也就是反过来。并不会进行大小排序
console.log(ar1)//[3, 1, 8, 6, 4, 2]

3.冒泡排序

//每轮依次比较相邻两个数的大小,后面比前面小则交换
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=0;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]

4.选择排序

//拿第一个数与后面数相比较,如果比后面的数大则交换
//拿第二个数与后面的数比较,如果比后面的数大则交换
//直到比较到倒数第二个数,最后一个数不用比较
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]

5.快速排序

先从数列中取出一个数作为基准数

分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边

再对左右区间重复第二步,直到各区间只有一个数

function quickSort(arr, i, j) {
 if(i < j) {
  let left = i;
  let right = j;
  let mid = Math.floor((left+right)/2);
  let temp = arr[left];
  arr[left] = arr[mid];
  arr[mid] = temp;
  let pivot = arr[left];
  while(i < j) {
   while(arr[j] >= pivot && i < j) { // 从后往前找比基准小的数
    j--;
   }
   if(i < j) {
    arr[i++] = arr[j];
   }
   while(arr[i] <= pivot && i < j) { // 从前往后找比基准大的数
    i++;
   }
   if(i < j) {
    arr[j--] = arr[i];
   }
  }
  arr[i] = pivot;
  quickSort(arr, left, i-1);
  quickSort(arr, i+1, right);
  return arr;
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • java必学必会之static关键字

    java必学必会之static关键字

    java必学必会之static关键字,static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,下面结合大家一起学习static关键字
    2015-12-12
  • 谈谈impress.js初步理解

    谈谈impress.js初步理解

    impress.js 是国外一位开发者受 Prezi 启发,采用 CSS3 与 JavaScript 语言完成的一个可供开发者使用的表现层框架(演示工具)。感兴趣的朋友跟着小编一起学习吧
    2015-09-09
  • JS数组操作大全对象数组根据某个相同的字段分组

    JS数组操作大全对象数组根据某个相同的字段分组

    这篇文章主要介绍了JS数组操作大全对象数组根据某个相同的字段分组,需要注意的是,在开发过程这种数组的处理函数,应当被编写到项目的公共工具函数库中全局调用,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • JavaScript高仿支付宝倒计时页面及代码实现

    JavaScript高仿支付宝倒计时页面及代码实现

    在支付宝上我们经常会见到支付宝倒计时功能,倒计时应用非常广泛,下文给大家介绍js制作支付宝倒计时功能,但是里面涉及到,倒计时,弹框,以及字体图的相关知识,感兴趣的朋友一起看看吧
    2016-10-10
  • JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例

    JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例

    这篇文章主要介绍了JavaScript+html5 canvas绘制缤纷多彩的三角形效果,以完整实例形式分析了html5的canvas绘制图形的相关技巧,需要的朋友可以参考下
    2016-01-01
  • JavaScript split()方法定义及更多实例

    JavaScript split()方法定义及更多实例

    这篇文章主要给大家介绍了关于JavaScript split()方法定义及更多实例的相关资料,js里的split()方法大家都知道用于将字符串转化为字符串数组,文中通过代码实例介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • 按下回车键指向下一个位置的一个函数代码

    按下回车键指向下一个位置的一个函数代码

    本篇文章主要是对按下回车键指向下一个位置的一个函数代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-03-03
  • ajaxControlToolkit AutoCompleteExtender的用法

    ajaxControlToolkit AutoCompleteExtender的用法

    昨天在搜索中使用了这个控件,不过不知道为什么在IE中反应比较慢
    2008-10-10
  • es6 super关键字的理解与应用实例分析

    es6 super关键字的理解与应用实例分析

    这篇文章主要介绍了es6 super关键字的理解与应用,结合实例形式分析了es6 super关键字的功能、原理、用法及相关操作注意事项,需要的朋友可以参考下
    2020-02-02
  • Bootstrap实现省市区三级联动(亲测可用)

    Bootstrap实现省市区三级联动(亲测可用)

    这篇文章主要为大家详细介绍了Bootstrap实现省市区三级联动,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07

最新评论