js——快速排序(quickSort)代码实现

快速排序是前端排序算法面试中常考的算法,面试时可能要求在A4纸上直接书写,不能犹豫,所以需要掌握该算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

快速排序作为前端排序算法面试的最常考算法之一,是必须要掌握的。现场面试的时候,会要求直接在A4纸上书写出来,不能有犹豫,所以还在等什么呢?

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>快速排序</title>
<!-- 1、快速排序思想:先找到一个基准点(一般指数组的中部),然后数组被该基准点分为两部分,依次与该基准点数据比较,如果比它小,放左边;反之,放右边。
左右分别用一个空数组去存储比较后的数据,最后递归执行上述操作,直到数组长度小于等于1。
2、特点:快速、常用。缺点是需要另外声明两个数组,浪费了内存空间资源。
3、依赖基准的选取,属于不稳定排序算法。
 -->
</head>
<body>
	
<script type="text/javascript">
	var time=0;
	function sort(arr) {
		// body...
		if(arr.length<=1){
			return arr;
		}

		var pivotIndex=Math.floor(arr.length/2);
		var pivot=arr.splice(pivotIndex,1)[0];//splice()返回的是含有被删除的元素的数组,删除基准数
		//console.log(pivot);
		var left=[];
		var right=[];
		for(var i=0;i<arr.length;i++){
			if(arr[i]<pivot){
				left.push(arr[i]);
			}else{
				right.push(arr[i]);
			}
		}
		return sort(left).concat(pivot,sort(right));
	}

	var arr=[3,1,5,7,2,4,9,6,10,8];
	console.log("beforeSort:"+arr);//beforeSort:3,1,5,7,2,4,9,6,10,8
	console.log("afterSort:"+sort(arr));//afterSort:1,2,3,4,5,6,7,8,9,10
</script>
</body>
</html>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值