JS常用排序方法实例代码解析
【JS常用排序方法实例代码解析】有些代码一两个月都会忘了,有空多做下总结,记录下来,等需要用到的时候可以来翻翻总结的博客。写技术博客,对自己是一种总结,对别人,是一种参考。
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; ia[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; ia[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; }}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
推荐阅读
- 数据结构于算法|十大排序算法基本原理及其实现
- 给事情排排序
- SpringDataJPA详解增删改查操作方法
- 致高四党(2018复读逆袭方法)
- 基于时间戳的唯一标识符的轻量级跟踪方法
- html和css的常用语法代码详解
- Java-类型转换、常用运算符总结
- yii2|yii2下的with使用方法
- 微信小程序 3__事件,方法传参,数据绑定,微信API调用
- JS压缩方法及批量压缩