首先上图 说明原理
下面是代码:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript"> /* 1:找一个基数点 2:建立两个数分别存储左别和右边的数 3:用递归进行下次比较 */ function quickSort(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]); } //递归调用 concat() 方法用于连接两个或多个数组。 return quickSort(left).concat([numvalue],quickSort(right)); } alert(quickSort([12,5,6,22,40])); </script> </head> <body> </body> </html>