1、算法核心步骤
(1)比较相邻的两个元素,如果前一个比后一个大,则交换位置
(2)第一轮的时候最后一个元素应该是最大的一个
(3)按照步骤1的方法进行相邻两个元素的比较,这个时候由于最后一个元素已经是最大的了,所以最后一个元素不用比较
(4)持续对每次越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
2、动图演示
3、什么时候最快
当输入的数据是正序的时候
4、什么时候最慢
当输入的数据是反序的时候
5、js代码实现
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
var arr=[5,39,8,1,2,13,55];
function bubbleSort(arr){
//获取数组长度
var i=arr.length;
var j;
//定义临时变量
var tempEx;
while(i>0){
//对数组元素进行冒泡
for(j=0;j<i-1;j++){
//交换元素
if(arr[j]>arr[j+1]){
tempEx=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tempEx;
}
}
i--;
}
return arr;
}
var b=bubbleSort(arr);
function bb(){
document.getElementById("b").innerHTML=b;
}
</script>
</head>
<body>
排序前:5,39,8,1,2,13,55
<div id="b"></div>
<button onclick="bb()">点击排序</button>
</body>
</html>