A-A+
javascript中数组快速排序的方法
本文章简单的介绍一个js数组快速排序的实现有需要了解的同学可以参考.
- function quickSort(arr){
- //如果数组只有一个数,就直接返回;
- if(arr.length<1){
- return arr;
- }
- //找到中间的那个数的索引值;如果是浮点数,就向下取整
- var centerIndex = Math.floor(arr.length/2);
- //根据这个中间的数的索引值,找到这个数的值;
- var centerNum = arr.splice(centerIndex,1);
- //存放左边的数
- var arrLeft = [];
- //存放右边的数
- var arrRight = [];
- for(i=0;i<arr.length;i++){
- if(arr[i]<centerNum){
- arrLeft.push(arr[i])
- }else if(arr[i]>centerNum){
- arrRight.push(arr[i])
- }
- }
- return quickSort(arrLeft).concat(centerNum,quickSort(arrRight));
- };
- var arrSort = [33,18,2,40,16,63,27];
- var arr1 = quickSort(arrSort);
- console.log(arr1);