1.利用ES6中Set:
let arr = [ 2 , 1 , 4 , 32 , 28 , 22 , 5 , 8 , 11 ]
let arr2 = arr. sort ( ( a, b) => { return a- b} )
console. log ( arr2) ;
2.快排法:
let arr = [ 2 , 1 , 4 , 32 , 28 , 22 , 5 , 8 , 11 ]
var quickSort = ( arr) => {
for ( let i= 0 ; i< arr. length- 1 ; i++ ) {
for ( let j= 0 ; j< arr. length- i- 1 ; j++ ) {
if ( arr[ j] > arr[ j+ 1 ] ) {
let arrVal = arr[ j]
arr[ j] = arr[ j+ 1 ]
arr[ j+ 1 ] = arrVal
}
}
}
console. log ( arr)
}
quickSort ( arr)
3.二分法:
let twoSort = ( arr) => {
if ( arr. length<= 1 ) {
return arr
}
let middleArr = arr. splice ( Math. floor ( arr. length/ 2 ) , 1 )
let leftArr = [ ]
let rightArr = [ ]
for ( var i= 0 ; i< arr. length; i++ ) {
if ( parseFloat ( arr[ i] ) <= middleArr) {
leftArr. push ( arr[ i] )
} else {
rightArr. push ( arr[ i] )
}
}
return twoSort ( leftArr) . concat ( middleArr, twoSort ( rightArr) )
}
ret = twoSort ( arr)
console. log ( ret)