美文网首页
JS数组的排序方式

JS数组的排序方式

作者: 有希望的活着 | 来源:发表于2020-05-17 16:50 被阅读0次

    1,使用数组的sort函数可以实现排序

    但是默认sort是按照ASCII编码排序的 如果需要按照数值的从小到大 从大到小需要使用第二个参数 是一个回调函数 回调函数需要两个参数 用来说明你要按照什么方式排序

    例如a,b

    如果 a - b < 0 表示 a 比 b小 那么真实的a代表的数字就会排在b前面

    如果 a - b == 0 那么表示2个值相等 就按顺序排序 如果 a - b > 0 表示 a比b大 那么真实a代表的数组就会排在b后面

    functionsortNumber(a,b){returna-b// 从小到大// return b - a  // 从大到小}vararr=[10,5,40,25,1000,1]document.write(arr+"<br />")document.write(arr.sort(sortNumber));// 1 5 10 25 40 1000 从小到大

    2,自己使用算法实现排序 例如 冒泡排序

    vararr=[10,20,1,2];vart;for(vari=0;i<arr.length;i++){for(j=i+1;j<arr.length;j++){if(arr[i]>arr[j]){t=arr[i];arr[i]=arr[j];arr[j]=t;}}}console.log(arr);//[1, 2, 10, 20]

    2,快速排序

    // 快速排序varquickSort=function(arr){if(arr.length<1){//如果数组就是一项,那么可以直接返回returnarr;}varcenterIndex=Math.floor(arr.length/2);//获取数组中间的索引varcenterValue=arr[centerIndex];//获取数组中间项varleft=[],right=[];for(vari=0;i<arr.lenght;i++){if(arr[i]<centerValue){left.push(arr[i]);}else{right.push(arr[i]);}}returnquickSort(left).contanct([centerValue],quickSort(right));//递归调用}

    相关文章

      网友评论

          本文标题:JS数组的排序方式

          本文链接:https://www.haomeiwen.com/subject/ulysohtx.html