JS 冒泡排序

本文详细介绍了冒泡排序的原理和实现过程,通过示例代码展示了如何使用JavaScript进行冒泡排序。冒泡排序通过两层循环,逐步将最大(或最小)的元素移动到正确的位置,从而实现排序。在每一轮循环中,都会将当前未排序部分的最大元素冒泡到末尾。这是一种基础但重要的排序算法,对于理解排序思想有着重要作用。

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

冒泡排序

比较两个相邻的值,若后面的比前面的小,则将小的元素排到前面。依次循环直到结束。


代码

let arr = [10,20,9,8,79,200,65,100]

function sortHandle(arg){  // 
	let result = JSON.parse(JSON.stringify(arg))  // 拷贝一份儿,互不干扰
	for(let i = 0; i < result.length; i++) {  // 第一次循环,从0开始到结束,循环length次
		for(let j = 0; j < result.length - i; j++) {  // 再进行一次循环,进行对比
			if(result[j] > result[j + 1]) { // 若前一项大于后一项,修改位置
				let temp = result[j]
				result[j] = result[j + 1]
				result[j + 1] = temp
			}
		}
	}
	return result
}

效果
在这里插入图片描述


分析

主要是有两次循环

i = 0 外层循环过程中,内层进行循环j = 0 到 j = end(最后),第一遍排序将最大的数排到最后,结果应该是[10,9,8,20,79,65,100,200]

i = 1 再次执行j = 0 的循环,由于最大的数已经在最后了这也是j < arr.length - i 的巧妙之处,没有必要再次判断后面的最大的数(不写其实也没事的,简单理解成性能优化吧,不去执行没必要的操作)

i = 2 再次执行j = 0 的循环,依次类推

每次 i 循环中都会循环出当前循环中最大的数,并把其排到后面(一层层的排到后面)

然后就是将前一项值和后一项值赋值改变

end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值