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 Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
Mar 16 Javascript
JavaScript入门之对象与JSON详解
Oct 21 Javascript
网页右下角弹出窗体实现代码
Jun 05 Javascript
JavaScript 封装一个tab效果源码分享
Sep 15 Javascript
你不知道的高性能JAVASCRIPT
Jan 18 Javascript
javaScript数组迭代方法详解
Apr 14 Javascript
浅析JavaScript动画模拟拖拽原理
Dec 09 Javascript
jQuery选择器之属性筛选选择器用法详解
Sep 19 jQuery
vue实现点击展开点击收起效果
Apr 27 Javascript
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
Aug 30 Javascript
微信小程序点击view动态添加样式过程解析
Jan 21 Javascript
vue中对象数组去重的实现
Feb 06 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 静态变量与自定义常量的使用方法
2010/01/26 PHP
php守护进程 加linux命令nohup实现任务每秒执行一次
2011/07/04 PHP
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
2015/09/10 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
javascript获取以及设置光标位置
2017/02/16 Javascript
利用node.js搭建简单web服务器的方法教程
2017/02/20 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
vue的keep-alive中使用EventBus的方法
2019/04/23 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
微信小程序利用云函数获取手机号码
2019/12/17 Javascript
vue组件中节流函数的失效的原因和解决方法
2020/12/02 Vue.js
全面解析Python的While循环语句的使用方法
2015/10/13 Python
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
Python递归函数定义与用法示例
2017/06/02 Python
python导入csv文件出现SyntaxError问题分析
2017/12/15 Python
Python实现针对给定单链表删除指定节点的方法
2018/04/12 Python
python 删除列表里所有空格项的方法总结
2018/04/18 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
2019/04/01 Python
python实现人机猜拳小游戏
2020/02/03 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
浅谈css3中的前缀
2016/07/20 HTML / CSS
花卉与景观设计系大学生求职信
2013/10/01 职场文书
廉政教育心得体会
2014/01/01 职场文书
乐观大学生的自我评价
2014/01/10 职场文书
个人查摆剖析材料
2014/02/04 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
本科生求职信
2014/06/17 职场文书
2014年学生会工作总结
2014/11/07 职场文书
党的群众路线教育实践活动先进个人材料
2014/12/24 职场文书
2016年教育局“我们的节日——端午节”主题活动总结
2016/04/01 职场文书
Nginx的rewrite模块详解
2021/03/31 Servers
总结Python使用过程中的bug
2021/06/18 Python
React实现动效弹窗组件
2021/06/21 Javascript