【算法】冒泡排序--js实现

本文介绍了一种简单的排序算法——冒泡排序。详细说明了其核心步骤,并通过动图直观展示排序过程。此外还讨论了该算法在不同输入情况下的效率表现,并提供了JavaScript实现示例。

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

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> 
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值