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


Posted in Javascript onMarch 03, 2020

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

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;
 }
}

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

Javascript 相关文章推荐
在JavaScript中,为什么要尽可能使用局部变量?
Apr 06 Javascript
javascript使用activex控件的代码
Jan 27 Javascript
JavaScript中“+”的陷阱深刻理解
Dec 04 Javascript
浅谈JS闭包中的循环绑定处理程序
Nov 09 Javascript
jquery控制表单输入框显示默认值的方法
May 22 Javascript
JQuery实现网页右侧随动广告特效
Jan 17 Javascript
jQuery实现的分子运动小球碰撞效果
Jan 27 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
Jan 27 Javascript
Javascript HTML5 Canvas实现的一个画板
Apr 12 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
Jul 07 Javascript
Vuex的基本概念、项目搭建以及入坑点
Nov 04 Javascript
JS使用Chrome浏览器实现调试线上代码
Jul 23 Javascript
JS面向对象编程实现的Tab选项卡案例详解
Mar 03 #Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
Mar 03 #Javascript
小程序接入腾讯位置服务的详细流程
Mar 03 #Javascript
vue.js this.$router.push获取不到params参数问题
Mar 03 #Javascript
JS面向对象编程基础篇(二) 封装操作实例详解
Mar 03 #Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
Mar 03 #Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
Mar 03 #Javascript
You might like
PHP日期时间函数的高级应用技巧
2009/05/16 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
基于PHP实现用户注册登录功能
2016/10/14 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
js中更短的 Array 类型转换
2011/10/30 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
2015/09/11 Javascript
Javascript 计算字符串在localStorage中所占字节数
2015/10/21 Javascript
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
正则验证小数点后面只能有两位数的方法
2017/02/28 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
webpack5 联邦模块介绍详解
2020/07/08 Javascript
React实现阿里云OSS上传文件的示例
2020/08/10 Javascript
在实例中重学JavaScript事件循环
2020/12/03 Javascript
JavaScript 绘制饼图的示例
2021/02/19 Javascript
[00:39]DOTA2上海特级锦标赛 Liquid战队宣传片
2016/03/04 DOTA
Python通过递归遍历出集合中所有元素的方法
2015/02/25 Python
Python实现telnet服务器的方法
2015/07/10 Python
python常用函数详解
2016/09/13 Python
Python中的sort()方法使用基础教程
2017/01/08 Python
Python编程实现二分法和牛顿迭代法求平方根代码
2017/12/04 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
pytorch索引查找 index_select的例子
2019/08/18 Python
Django 自定义分页器的实现代码
2019/11/24 Python
Python 在函数上添加包装器
2020/07/28 Python
检测浏览器是否支持html5视频的代码
2013/03/28 HTML / CSS
孝敬父母的活动方案
2014/08/31 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
创业计划书之寿司
2019/07/19 职场文书
话题作文之学会尊重
2019/12/16 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS
一次MySQL启动导致的事故实战记录
2021/09/15 MySQL
python机器学习Github已达8.9Kstars模型解释器LIME
2021/11/23 Python