<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript"> /*原生方法。。快速排序*/ //1、找一个基准点 //2、建立两个数组,分别存储左边右边的数组 //3、利用递归,进行下次比较 function quick_sort (arr) { if(arr.length<=1){ return arr; } var num=Math.floor(arr.length/2);//找到基准点 var numValue=arr.splice(num,1);//基准点对应的基准值 var left=[];//左边数组 var right=[];//右边数组 for (var i = 0; i < arr.length; i++) { if (arr[i]<numValue) { left.push(arr[i]);//小于这个基准值的放到左边 }else{ right.push(arr[i]) ;//大于放到右边 } }; return quick_sort(left).concat([numValue],quick_sort(right));//连接 } alert(quick_sort([12,5,6,37,22,40])) </script> </head> <body> </body> </html>
结果:5 6 12 22 37 40