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 相关文章推荐
js实现身份证号码验证的简单实例
Feb 19 Javascript
jQuery中ajax的get()方法用法实例
Dec 26 Javascript
js判断当前页面用什么浏览器打开的方法
Jan 06 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
Feb 21 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
Feb 27 Javascript
Vue中保存用户登录状态实例代码
Jun 07 Javascript
JS利用正则表达式实现简单的密码强弱判断实例
Jun 16 Javascript
ligerUI---ListBox(列表框可移动的实例)
Nov 28 Javascript
全站最详细的Vuex教程
Apr 13 Javascript
JS实现判断图片是否加载完成的方法分析
Jul 31 Javascript
Vue使用Proxy监听所有接口状态的方法实现
Jun 07 Javascript
node.js中fs文件系统模块的使用方法实例详解
Feb 13 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模板中出现空行解决方法
2011/03/08 PHP
PHP抽象类 介绍
2012/06/13 PHP
Php中用PDO查询Mysql来避免SQL注入风险的方法
2013/04/25 PHP
基于PHP创建Cookie数组的详解
2013/07/03 PHP
5款适合PHP使用的HTML编辑器推荐
2015/07/03 PHP
PHP使用SOAP扩展实现WebService的方法
2016/04/01 PHP
PHP+MySQL实现消息队列的方法分析
2018/05/09 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
2020/08/17 PHP
javascript 判断数组是否已包含了某个元素的函数
2010/05/30 Javascript
js 静态动态成员 and 信息的封装和隐藏
2011/05/29 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
得到jQuery detach()后节点中的某个值实现代码
2013/02/05 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
2015/03/12 Javascript
辨析JavaScript中的Undefined类型与null类型
2016/05/26 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
原生js封装的一些jquery方法(详解)
2016/09/20 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
jQuery中的一些小技巧
2017/01/18 Javascript
three.js绘制地球、飞机与轨迹的效果示例
2017/02/28 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
在Python编程过程中用单元测试法调试代码的介绍
2015/04/02 Python
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
Python学习之Django的管理界面代码示例
2018/02/10 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
pow在python中的含义及用法
2019/07/11 Python
对Django项目中的ORM映射与模糊查询的使用详解
2019/07/18 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
2020/03/10 Python
详解python 条件语句和while循环的实例代码
2020/12/28 Python
HTML5高仿微信聊天、微信聊天表情|对话框|编辑器功能
2018/04/23 HTML / CSS
Silk’n激光脱毛器官网:silkn.com
2016/10/06 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
行政部岗位职责范本
2014/03/13 职场文书
销售经理岗位职责范本
2015/04/02 职场文书
大学生敬老院活动总结
2015/05/07 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书