冒泡排序

冒泡排序
原理:依次比较相邻的两个值,如果后面的比前面的小,则将小的元素排到前面。依照这个规则进行多次并且递减的迭代,直到顺序正确。
查阅说明
时间复杂度指的是一个算法执行所耗费的时间
空间复杂度指运行完一个程序所需内存的大小
稳定指,如果a=b,a在b的前面,排序后a仍然在b的前面
不稳定指,如果a=b,a在b的前面,排序后可能会交换位置
时间复杂度,空间复杂度,稳定性
平均时间复杂度O(nn)
最好情况O(n)
最差情况O(n
n)
空间复杂度O(1)
稳定性:稳定

具体js 写法

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>冒泡排序</title>
</head>
<body>
	<script>
		var numArr = [67,51,18,32,75,34,90,16,20];
		function sort(arr){
			for (var i = 0; i < arr.length -1; i++) {
				for (var j = 0; j < arr.length -1 - i; j++) {
					if (arr[j] > arr[j + 1]) {
						var t = arr[j];
						arr[j] = arr[j + 1];
						arr[j + 1] = t;
					}
				}
			}
			return arr;
		}
		sort(numArr);
		document.write(numArr);
	</script>
</body>
</html>

解析
其中有两个循环
当i=0的时候,里面的循环完整执行,从j=0执行到j=7,这也就是第一遍排序,结果是将最大的数排到了最后。
当i=1的时候,里面的循环再次完整执行,由于最大的数已经在最后了,没有必要去比较数组的最后两项,
以此类推
补充
事件传递有两种方式:冒泡与捕获。
事件传递定义了元素事件触发的顺序。 如果你将 p 元素插入到 div元素中,用户点击 p元素, 哪个元素的 “click” 事件先被触发呢?
在 冒泡 中,内部元素的事件会先被触发,然后再触发外部元素,即p 元素的点击事件先触发,然后会触发div元素的点击事件。
在 捕获 中,外部元素的事件会先被触发,然后才会触发内部元素的事件,即div 元素的点击事件先触发 ,然后再触发 p元素的点击事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值