冒泡排序算法

冒泡排序(Bubble Sort)是重复走访要排序的数列,通过遍历操作不断比较两个相邻的元素,将值大的元素交换至右端。之后继续第二次遍历,将次大值交换至倒数第二位数,不断重复该操作直至排序完成。

若要将 数组arry[23, 54,2, 27] 按从小到大进行排序,则先比较arry[0]和arry[1],即23和54,由于23<54,无需进行位置交换 ,得到数组为arry[23, 54, 2,27];继续比较arry[1]和arry[2], 因为54>2,元素互换,得到的数组为arry[23, 2,54,27];继续比较arry[2]和arry[3],因为54>23,元素位置互换,得到数组为arry[23, 2, 27, 54]。至此,数组完成第一次排序遍历,已将该数组的最大值排序至最后段,接下去进行第二次遍历。

arry[0]>arry[1],元素互换,得到arry[2, 23, 27, 54]; 继续比较,arry[1]<arry[2],无需互换,得到数组为arry[2, 23 ,27 ,54],至此第二次遍历结束。

遍历次数为 arry.length-2。

<script>
    function mpFunction(){
        var ary =[12,32,45,1,33,67,0,99,19,50,69];
        for (var i = ary.length-1;i>0; i--){
            var flag = false;
            for(var j = 0;j<i; j++){
                if(ary[j]>ary[j+1]){
                    var tmp = ary[j];
                    ary[j] = ary[j+1];
                    ary[j+1] = tmp;
                    flag = true;
                }
            }
            if (!flag) break;
        }
//输出排序后的序列
        for (var k = 0; k<ary.length; k++){
            document.write(ary[k]+" ");
        }
    }
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值