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与Prototype并存的冲突的解决方法
Aug 29 Javascript
setTimeout与setInterval在不同浏览器下的差异
Jan 24 Javascript
JavaScript实现页面实时显示当前时间的简单实例
Jul 20 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
Aug 28 Javascript
js图片跟随鼠标移动代码
Nov 26 Javascript
微信小程序 wxapp视图容器 view详解
Oct 31 Javascript
jQuery Form表单取值的方法
Jan 11 Javascript
基于jQuery实现简单人工智能聊天室
Feb 10 Javascript
HTML的select控件美化
Mar 27 Javascript
angularjs中的$eval方法详解
Apr 24 Javascript
Vuex 使用 v-model 配合 state的方法
Nov 13 Javascript
微信小程序定义和调用全局变量globalData的实现
Nov 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
PHP5 安装方法
2006/10/09 PHP
php上传图片到指定位置路径保存到数据库的具体实现
2013/12/30 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
2015/12/21 PHP
PHP去除字符串最后一个字符的三种方法实例
2017/03/01 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
javascript动态加载二
2012/08/22 Javascript
jquery创建一个新的节点对象(自定义结构/内容)的好方法
2013/01/21 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
如何使用Jquery获取Form表单中被选中的radio值
2013/08/09 Javascript
node.js 中间件express-session使用详解
2017/05/20 Javascript
在Vue中使用Compass的方法
2018/03/02 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
Vue项目中使用WebUploader实现文件上传的方法
2019/07/21 Javascript
vuex(vue状态管理)的特殊应用案例分享
2020/03/03 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
2020/06/02 Javascript
Element el-button 按钮组件的使用详解
2021/02/01 Javascript
Python对两个有序列表进行合并和排序的例子
2014/06/13 Python
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
浅谈python编译pyc工程--导包问题解决
2019/03/20 Python
Python实现的爬取小说爬虫功能示例
2019/03/30 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
2020/12/04 Python
用python批量下载apk
2020/12/29 Python
HTML5拖放功能_动力节点Java学院整理
2017/07/13 HTML / CSS
Gap工厂店:Gap Factory
2017/11/02 全球购物
网络维护管理员的自我评价分享
2013/11/11 职场文书
工程测量与监理专业应届生求职信
2013/11/27 职场文书
关于热爱祖国的演讲稿
2014/05/04 职场文书
企业晚会策划方案
2014/05/29 职场文书
十周年庆典策划方案
2014/06/03 职场文书
记账会计岗位职责
2014/06/16 职场文书
医院营销工作计划
2015/01/16 职场文书
2015年医院后勤工作总结
2015/05/20 职场文书
mysql对于模糊查询like的一些汇总
2021/05/09 MySQL