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 相关文章推荐
异步加载script的代码
Jan 12 Javascript
JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
Feb 27 Javascript
Javascript Web Slider 焦点图示例源码
Oct 10 Javascript
js获取当前地址 JS获取当前URL的示例代码
Feb 26 Javascript
推荐一款jQuery插件模板
Jan 09 Javascript
深入分析jsonp协议原理
Sep 26 Javascript
js实现图片切换(动画版)
Dec 25 Javascript
angular2系列之路由转场动画的示例代码
Nov 09 Javascript
angular4强制刷新视图的方法
Oct 09 Javascript
vue watch关于对象内的属性监听
Apr 22 Javascript
微信小程序实现蒙版弹出窗功能
Sep 17 Javascript
JavaScript 防篡改对象的用法示例
Apr 24 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
咖啡豆分级制度 咖啡豆等级分类 咖啡豆是按口感分类的吗?
2021/03/05 新手入门
PHP array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
PHP内核介绍及扩展开发指南―基础知识
2011/09/11 PHP
PHP+swoole实现简单多人在线聊天群发
2016/01/19 PHP
php导出csv文件,可导出前导0实例代码
2016/11/16 PHP
php支付宝APP支付功能
2020/07/29 PHP
asp函数split()对应php函数explode()
2019/02/27 PHP
JS宝典学习笔记(下)
2007/01/10 Javascript
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
js loading加载效果实现代码
2009/11/24 Javascript
用JS判断IE版本的代码 超管用!
2011/08/09 Javascript
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
2013/11/25 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
2014/01/24 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
JavaScript自定义数组排序方法
2015/02/12 Javascript
javascript感应鼠标图片透明度显示的方法
2015/02/24 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
JavaScript返回上一页的三种方法及区别介绍
2015/07/04 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
Js自定义多选框效果的实例代码
2017/07/05 Javascript
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
Python通过matplotlib绘制动画简单实例
2017/12/13 Python
python with提前退出遇到的坑与解决方案
2018/01/05 Python
Python基于ThreadingTCPServer创建多线程代理的方法示例
2018/01/11 Python
Python合并多个Excel数据的方法
2018/07/16 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
Python 自动登录淘宝并保存登录信息的方法
2019/09/04 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
Python文件操作模拟用户登陆代码实例
2020/06/09 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
美国折扣网站:jClub
2017/08/07 全球购物
幼儿园中班教师个人总结
2015/02/05 职场文书
三八妇女节新闻稿
2015/07/17 职场文书
大学生十八大感想
2015/08/11 职场文书
详解Java实现数据结构之并查集
2021/06/23 Java/Android