常用的排序方法
这里只列举几种简单易懂的排序方法(不喜勿喷,如有错误欢迎指出)
1、sort排序(按照字符编码的顺序进行排序)
var arr=[4,9,2,6,50,23,61,5,0,7,3]; function sysSort(arr){ return arr.sort(function(a,b){ return a-b }) } console.log(sysSort(arr)) //指定字段排序 var arr1 = [ {id:1,name:"lilei"}, {id:3,name:"lucy"}, {id:2,name:"zhangsan"} ] arr1.sort(function(a,b){ return a.id-b.id })
2、冒泡排序
var arr = [6,2,6,84,22,10,33,9,5,4] //冒泡排序原理 //双层for循环嵌套,对比如果第i个数小于第j个数时,利用中间变量d进行调换位置 function bullbleSort(arr){ var i = 0, len = arr.length, j, d; for(; i<len; i++){ for(j=0; j<len; j++){ if(arr[i] < arr[j]){ d = arr[j]; arr[j] = arr[i]; arr[i] = d; } } } return arr } console.log(bullbleSort(arr))
3、快速排序
var arr = [1,2,6,3,4,9,20,15,23,5]; function fastSort (arr){ if(arr.length < 1){return arr}; var inx = Math.floor(arr.length/2); //取数组中间数位置,以中间数为基准进行排序 var mid = arr.splice(inx,1)[0];//获取中间数信息 var left = [],right=[]; for(let i = 0; i < arr.length; i++){ if(arr[i] < mid){ left.push(arr[i]); }else{ right.push(arr[i]); } } return fastSort(left).concat(mid,fastSort(right)) //从小到大排 } console.log(fastSort(arr))