快速排序的原理为
1.找一个基准数(从数组的中间取)
2.把所有数和基准数作比较,小的放基准数的左边,大的放基准数的右边
3.再不断地把左边和右边两个数组递归
demo如下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script> //sort //快速排序 //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]); } } return quickSort(left).concat([numValue],quickSort(right)); } alert(quickSort([12,5,37,6,22,40])); </script> </head> <body> </body> </html>