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 wmp操作代码小结(音乐连播功能)
Nov 08 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
Mar 14 Javascript
用javascript判断IE版本号简单实用且向后兼容
Sep 11 Javascript
js和php如何获取当前url的内容
Sep 22 Javascript
js日期联动示例
May 02 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
May 03 Javascript
JavaScript Date对象详解
Mar 01 Javascript
详解vue中computed 和 watch的异同
Jun 30 Javascript
Echarts基本用法_动力节点Java学院整理
Aug 11 Javascript
Webpack优化配置缩小文件搜索范围
Dec 25 Javascript
react配合antd组件实现的管理系统示例代码
Apr 24 Javascript
mpvue中使用flyjs全局拦截的实现代码
Sep 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/08/06 PHP
PHP利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
PHP的Yii框架中过滤器相关的使用总结
2016/03/29 PHP
PHP实现负载均衡session共享redis缓存操作示例
2018/08/22 PHP
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
Extjs学习笔记之三 extjs form更多的表单项
2010/01/07 Javascript
Jquery Select操作方法集合脚本之家特别版
2010/05/17 Javascript
浅析hasOwnProperty方法的应用
2013/11/20 Javascript
Jquery获取和修改img的src值的方法
2014/02/17 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
JQuery中上下文选择器实现方法
2015/05/18 Javascript
javascript中setAttribute()函数使用方法及兼容性
2015/07/19 Javascript
jQuery实现二级下拉菜单效果
2016/01/05 Javascript
JS中对象与字符串的互相转换详解
2016/05/20 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
jQuery监听文件上传实现进度条效果的方法
2016/10/16 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
webpack中CommonsChunkPlugin详细教程(小结)
2017/11/09 Javascript
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
vue首次赋值不触发watch的解决方法
2018/09/11 Javascript
jQuery实现动态加载瀑布流
2020/09/01 jQuery
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
Python设计模式之简单工厂模式实例详解
2019/01/22 Python
python pyenv多版本管理工具的使用
2019/12/23 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
2020/03/04 Python
Python类super()及私有属性原理解析
2020/06/15 Python
Python fileinput模块如何逐行读取多个文件
2020/10/05 Python
Python字节单位转换(将字节转换为K M G T)
2021/03/02 Python
一篇文章带你学习CSS3图片边框
2020/11/04 HTML / CSS
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
生物专业个人自荐信范文
2013/11/29 职场文书
英语道歉信范文
2014/01/09 职场文书
自愿离婚协议书范本
2014/09/13 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
2016年世界艾滋病日宣传活动总结
2016/04/01 职场文书