数组快排

快排

var arr = [1,5,4,3,7,2];
function kSort(arr){
	if(arr.length<=1)  return arr;//当arr里边的元素小于等于1的时候,不需要再循环,返回arr
	//找中间值
	var middle = arr.splice(Math.floor(arr.length/2),1)[0];
	var left = [];
	var right = [];
	//判断,大于中间值,放在right 小于中间值的放在left
	for(var i = 0;i<arr.length;i++){
		if(arr[i]<middlle){
			left.push(arr[i]);
		}else{
			right.push(arr[i]);
		}
	}
	//组合
	return kSort(left).concat(middle,kSort(right));//调用函数,递归;
}
发布了54 篇原创文章 · 获赞 7 · 访问量 2077

猜你喜欢

转载自blog.csdn.net/baobao__/article/details/101218362
今日推荐