您的位置:首页 > Web前端 > JavaScript

javaScript--快速排序实现(不用sort)

2014-04-19 14:25 337 查看
<!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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: