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实现鼠标滑过弹出更多相关信息层附源码下载
Nov 23 Javascript
小巧强大的jquery layer弹窗弹层插件
Dec 06 Javascript
javascript实现下雪效果【实例代码】
May 03 Javascript
JavaScript实现数组降维详解
Jan 05 Javascript
深入理解vue中的$set
Jun 01 Javascript
JavaScrpt判断一个数是否是质数的实例代码
Jun 11 Javascript
vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
Aug 05 Javascript
微信小程序页面间值传递的两种方法
Nov 26 Javascript
微信小程序实现评论功能
Nov 28 Javascript
vue 导航内容设置选中状态样式的例子
Nov 01 Javascript
JavaScript计算正方形面积
Nov 26 Javascript
使用 UniApp 实现小程序的微信登录功能
Jun 09 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基于imap获取邮件实例
2014/11/11 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
PHP7 mongoDB扩展使用的方法分享
2019/05/02 PHP
Laravel框架Request、Response及Session操作示例
2019/05/06 PHP
JavaScript接口实现代码 (Interfaces In JavaScript)
2010/06/11 Javascript
jQuery通过点击行来删除HTML表格行的实现示例
2014/09/10 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
jquery+easeing实现仿flash的载入动画
2015/03/10 Javascript
jquery控制表单输入框显示默认值的方法
2015/05/22 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
2016/03/01 Javascript
js阻止冒泡和默认事件(默认行为)详解
2016/10/20 Javascript
利用JS实现文字的聚合动画效果
2017/01/22 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
Echarts实现单条折线可拖拽效果
2019/12/19 Javascript
Vue学习之axios的使用方法实例分析
2020/01/06 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
[03:36]DOTA2完美大师赛coL战队趣味视频——我演你猜
2017/11/23 DOTA
python中使用psutil查看内存占用的情况
2018/06/11 Python
python实现反转部分单向链表
2018/09/27 Python
在Python3 numpy中mean和average的区别详解
2019/08/24 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
基于keras输出中间层结果的2种实现方式
2020/01/24 Python
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
招聘单位介绍信
2014/01/14 职场文书
竞聘书模板
2014/03/31 职场文书
终止合同协议书
2014/04/17 职场文书
体育系毕业生自荐信
2014/06/28 职场文书
员工团队活动方案
2014/08/28 职场文书
锅炉工岗位职责
2015/02/13 职场文书
辞职信如何写
2015/02/27 职场文书
2016幼儿园教师年度考核评语
2015/12/01 职场文书
MySQL锁机制
2021/04/05 MySQL
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python