Javascript 冒泡排序

本文详细介绍了冒泡排序的基本思想,通过两种不同的实现方式,演示了如何将数组从小到大排序。包括具体实现代码及其运行过程,以及对算法效率的分析。

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

最基本的题目:一个数组,未知长度,按从小到大的顺序进行排列;现在用基本的冒泡排序方法进行排序!

一种思路是先把大的往后排,数组呈逐步减少的状态,排序的过程为:

i=0时,j=0,j<5,j++

8 3 6 1 -2

8 6 1 -2

3 6 8 1 -2

3 6 1 8 -2

3 6 1 -2 8

i=1时,j=0,j<4,j++

3 6 1 -2 8

6 1 -2 8

3 1 6 -2 8

3 1 -2 6 8

 

i=2时,j=0,j<3,j++

3 1 -2 6 8

3 -2 6 8

1 -2 3 6 8

 

i=3时,j=0,j<2,j++

1 -2 3 6 8

-2 1 3 6 8

 

i=4时,j=0,j<1,j++

-2 1 3 6 8

-2 1 3 6 8

 

具体的实现代码是:

var arr = [8,3,6,1,-2];  
var temp;  
var count=0;  
for(var i=0; i<arr.length; i++)  
{  
    for (var j = 0; j < arr.length-i; j++)   
    {  
        if (arr[j + 1] < arr[j])   
        {  
            temp = arr[j + 1];  
            arr[j + 1] = arr[j];  
            arr[j] = temp;  
            count++;  
            //alert("i:"+i+"j:"+j);  
        }  
    }  
}  
document.write(arr);  
document.write("总共循环了"+count);//9 
另外一种思路是把小的元素往前排,再比较的时候就比较剩下的元素就可以了,i=0先把-2给换到最前边,i=1把1网签拽,数组就剩下8 3 6了 ,数组就越来越小了!

var arr = [8,3,6,1,-2];  
var temp;  
var count=0;  
for(var i=0; i<arr.length; i++)  
{  
    for (var j =arr.length-1; j >= i; j--)   
    {  
        if (arr[j + 1] < arr[j])   
        {  
            temp = arr[j + 1];  
            arr[j + 1] = arr[j];  
            arr[j] = temp;  
            count++;              
        }  
        //alert("i:"+i+"j:"+j);  
    }  
}  
document.write(arr);  
document.write("总共循环了"+count);//9
当然这两种思路都是冒泡法,5个不重复的元素,循环了9次


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值