JS实现数组排序的方法有哪些

JavaScript03

JS实现数组排序的方法有哪些,第1张

从给定的数据中,随机抽出一项,这项的左边放所有比它小的,右边放比它大的,然后再分别这两边执行上述操作,采用的是递归的思想,总结出来就是 实现一层,分别给两边递归,设置好出口

function fastSort(array,head,tail){

    //考虑到给每个分区操作的时候都是在原有的数组中进行操作的,所以这里head,tail来确定分片的位置

    /*生成随机项*/

    var randomnum = Math.floor(ranDom(head,tail))

    var random = array[randomnum]

    /*将小于random的项放置在其左边  策略就是通过一个临时的数组来储存分好区的结果,再到原数组中替换*/

    var arrayTemp = []

    var unshiftHead = 0

    for(var i = headi <= taili++){

      if(array[i]<random){

        arrayTemp.unshift(array[i])

        unshiftHead++

      }else if(array[i]>random){

        arrayTemp.push(array[i])

      }

      /*当它等于的时候放哪,这里我想选择放到队列的前面,也就是从unshift后的第一个位置放置*/

      if(array[i]===random){

        arrayTemp.splice(unshiftHead,0,array[i])

      }

    }

    /*将对应项覆盖原来的记录*/

    for(var j = head , u=0j <= tailj++,u++){

      array.splice(j,1,arrayTemp[u])

    }

    /*寻找中间项所在的index*/

    var nowIndex = array.indexOf(random)

    /*设置出口,当要放进去的片段只有2项的时候就可以收工了*/

    if(arrayTemp.length <= 2){

      return

    }

    /*递归,同时应用其左右两个区域*/

    fastSort(array,head,nowIndex)

    fastSort(array,nowIndex+1,tail)

  }

JavaScript实现多维数组、对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序。

sort() 方法用于对数组的元素进行排序。语法如下:

arrayObject.sort(sortby)

例如:

function NumAscSort(a,b)

{

 return a - b

}

function NumDescSort(a,b)

{

 return b - a

}

var arr = new Array( 3600, 5010, 10100, 801) 

arr.sort(NumDescSort)

alert(arr)

arr.sort(NumAscSort)

alert(arr)

var arr =  ["4_jpg","2_jpg","3_jpg" ,"1_jpg","6_jpg", "5_jpg"]

arr.sort(function(a,b){

    return a.localeCompare(b)

})

console.log(arr)