# JS 排序

xiaoxiao2021-02-28  17

1、sort

function compare( a , b ){ return a-b }

arr.sort(compare);

2、冒泡排序

...

3、快速排序（能衍生一个二分查找）//***这个是一个伪快排

function twoSort( arr ){

if(arr.length <= 1){ return arr }

var mid = arr.splice(Math.floor( arr.length/2 ) ,1 );

var left = [] , right = [];

for(var i = 1; i < arr.length; i++){

if(arr[i]<mid){

left.push( arr[i] );

}else{

right.push( arr[i] );

}

}

return twoSort(left).concat(mid , twoSort(right))

function quickSort(arr, left, right) { var len = arr.length, partitionIndex, left = typeof left != 'number' ? 0 : left, right = typeof right != 'number' ? len - 1 : right; if (left < right) { partitionIndex = partition(arr, left, right); quickSort(arr, left, partitionIndex-1); quickSort(arr, partitionIndex+1, right); } return arr; } function partition(arr, left ,right) { //分区操作 var pivot = left, //设定基准值（pivot index = pivot + 1; for (var i = index; i <= right; i++) { if (arr[i] < arr[pivot]) { swap(arr, i, index); index++; } } swap(arr, pivot, index - 1); return index-1; } function swap(arr, i, j) { var temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; }