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 DataSet数据源处理代码
Mar 29 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
Jun 17 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
Oct 29 Javascript
跟我学习javascript解决异步编程异常方案
Nov 23 Javascript
微信小程序组件 marquee实例详解
Jun 23 Javascript
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
Jan 07 Javascript
vue项目中axios使用详解
Feb 07 Javascript
vue组件表单数据回显验证及提交的实例代码
Aug 30 Javascript
简单了解node npm cnpm的具体使用方法
Feb 27 Javascript
vue的三种图片引入方式代码实例
Nov 19 Javascript
vue element-ui读取pdf文件的方法
Nov 26 Javascript
JavaScript的一些小技巧分享
Jan 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
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
PHP数组及条件,循环语句学习
2012/11/11 PHP
一些php项目中比较通用的php自建函数的详解
2013/06/06 PHP
Linux Apache PHP Oracle 安装配置(具体操作步骤)
2013/06/17 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
js 手机号码合法性验证代码集合
2012/09/29 Javascript
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
2013/03/22 Javascript
javascript闭包传参和事件的循环绑定示例探讨
2014/04/17 Javascript
nodejs开发环境配置与使用
2014/11/17 NodeJs
jquery 实现返回顶部功能
2014/11/17 Javascript
jQuery实现瀑布流的取巧做法分享
2015/01/12 Javascript
nodejs通过phantomjs实现下载网页
2015/05/04 NodeJs
jQuery实现固定在网页顶部的菜单效果代码
2015/09/02 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
基于Bootstrap分页的实例讲解(必看篇)
2017/07/04 Javascript
微信小程序dom操作的替代思路实例分析
2018/12/06 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
2019/06/14 Javascript
[01:11:21]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第三场 3月7日
2021/03/11 DOTA
python使用pdfminer解析pdf文件的方法示例
2018/12/20 Python
一步步教你用python的scrapy编写一个爬虫
2019/04/17 Python
python字典的常用方法总结
2019/07/31 Python
Python函数的迭代器与生成器的示例代码
2020/06/18 Python
利用canvas实现图片下载功能来实现浏览器兼容问题
2019/05/31 HTML / CSS
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
美国知名艺术画网站:Art.com
2017/02/09 全球购物
美国男女折扣服饰百货连锁店:Stein Mart
2017/05/02 全球购物
俄罗斯的精英皮具:Wittchen
2018/01/29 全球购物
美国在线面料商店:Fashion Fabrics Club
2020/01/31 全球购物
外语专业毕业生自我评价分享
2013/10/05 职场文书
工程造价自荐信
2013/10/09 职场文书
元旦晚会策划方案
2014/02/18 职场文书
体育教学随笔感言
2014/02/24 职场文书
想要创业,那么你做好准备了吗?
2019/07/01 职场文书
纪念建国70周年演讲稿
2019/07/19 职场文书