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 相关文章推荐
音乐播放用的的几个函数
Sep 07 Javascript
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
Mar 16 Javascript
JS中Iframe之间传值的方法
Mar 11 Javascript
javascript简单实现命名空间效果
Mar 06 Javascript
node.js中的buffer.copy方法使用说明
Dec 14 Javascript
Vue与Node.js通过socket.io通信的示例代码
Jul 25 Javascript
Vue表情输入组件 微信face表情组件
Feb 11 Javascript
详解在React-Native中持久化redux数据
May 22 Javascript
layui-table获得当前行的上/下一行数据的例子
Sep 24 Javascript
Angular进行简单单元测试的实现方法实例
Aug 16 Javascript
vue 函数调用加括号与不加括号的区别
Oct 29 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
Dec 20 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设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
javascript取消文本选定的实现代码
2010/11/14 Javascript
子页向父页传值示例
2013/11/27 Javascript
我的Node.js学习之路(四)--单元测试
2014/07/06 Javascript
jQuery中get和post方法传值测试及注意事项
2014/08/08 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
基于MVC方式实现三级联动(JavaScript)
2017/01/23 Javascript
angular2+node.js express打包部署的实战
2017/07/27 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
微信小程序-getUserInfo回调的实例详解
2017/10/27 Javascript
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
Vue组件中的data必须是一个function的原因浅析
2018/09/03 Javascript
一个手写的vue放大镜效果
2019/08/09 Javascript
javascript跳转与返回和刷新页面的实例代码
2019/11/20 Javascript
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
python命令行参数sys.argv使用示例
2014/01/28 Python
Python实现的下载网页源码功能示例
2017/06/13 Python
Python中序列的修改、散列与切片详解
2017/08/27 Python
python3.x上post发送json数据
2018/03/04 Python
利用python对Excel中的特定数据提取并写入新表的方法
2018/06/14 Python
详解PyCharm配置Anaconda的艰难心路历程
2018/08/13 Python
python输出电脑上所有的串口名的方法
2019/07/02 Python
Django分组聚合查询实例分享
2020/04/29 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
Python+OpenCV图像处理——图像二值化的实现
2020/10/24 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
Mansur Gavriel官网:纽约市的一个设计品牌
2019/05/02 全球购物
用C#语言写出在本地创建一个UDP接收端口的具体过程
2016/02/22 面试题
房地产营销策划方案
2014/02/08 职场文书
空中乘务员岗位职责
2014/03/08 职场文书
工程款申请报告
2015/05/15 职场文书
今日说法观后感
2015/06/08 职场文书
《小乌鸦爱妈妈》教学反思
2016/02/19 职场文书
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏