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 相关文章推荐
JQuery UI DatePicker中z-index默认为1的解决办法
Sep 28 Javascript
jquery绑定事件不生效的解决方法
Feb 11 Javascript
jQuery中clone()方法用法实例
Jan 16 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
Sep 04 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
Jan 19 Javascript
jQuery插件HighCharts绘制2D带有Legend的饼图效果示例【附demo源码下载】
Mar 10 Javascript
图片文字识别(OCR)插件Ocrad.js教程
Nov 26 Javascript
解决在layer.open中使用时间控件laydate失败的问题
Sep 11 Javascript
vue计算属性无法监听到数组内部变化的解决方案
Nov 06 Javascript
在vue中封装方法以及多处引用该方法详解
Aug 14 Javascript
jquery实现简易验证插件封装
Sep 13 jQuery
three.js 实现露珠滴落动画效果的示例代码
Mar 01 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版(1)
2006/10/09 PHP
php执行sql语句的写法
2009/03/10 PHP
php 无极分类(递归)实现代码
2010/01/05 PHP
php中http_build_query 的一个问题
2012/03/25 PHP
PHP对象链式操作实现原理分析
2016/10/09 PHP
利用php + Laravel如何实现部署自动化详解
2017/10/11 PHP
解决Laravel无法使用COOKIE和SESSION的问题
2019/10/16 PHP
document.getElementById方法在Firefox与IE中的区别
2010/05/18 Javascript
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
2010/06/28 Javascript
关于jquery append() html时的小问题的解决方法
2010/12/16 Javascript
JS实现超精简响应鼠标显示二级菜单代码
2015/09/12 Javascript
javascript防篡改对象实例详解
2017/04/10 Javascript
js编写简单的计时器功能
2017/07/15 Javascript
微信小程序视图template模板引用的实例详解
2017/09/20 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
nodejs+koa2 实现模仿springMVC框架
2020/10/21 NodeJs
python实现的文件夹清理程序分享
2014/11/22 Python
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
实例讲解Python的函数闭包使用中应注意的问题
2016/06/20 Python
详谈python3 numpy-loadtxt的编码问题
2018/04/29 Python
详解Python 切片语法
2019/06/10 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
python openvc 裁剪、剪切图片 提取图片的行和列
2019/09/19 Python
Python3离线安装Requests模块问题
2019/10/13 Python
python如何实现复制目录到指定目录
2020/02/13 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
Python logging模块handlers用法详解
2020/08/14 Python
英国打印机墨盒销售网站:Ink Factory
2019/10/07 全球购物
Pottery Barn阿联酋:购买家具、家居装饰及更多
2019/12/08 全球购物
The North Face官方旗舰店:美国著名户外品牌
2020/09/28 全球购物
教学个人的自我评价分享
2014/02/16 职场文书
医院领导班子整改方案
2014/10/01 职场文书
如何优化vue打包文件过大
2022/04/13 Vue.js
SpringBoot全局异常处理方案分享
2022/05/25 Java/Android