冒泡排序和选择排序的区别和实现效果

 

冒泡排序

        定义一个随机数组  

var arr1 = [5,4,8,3,2,6,7,1,10,9];

        最外层循环---实现排序循环次数,循环次数不大于数组的数据单元个数,最后一次循环排序,会将最后两个数值的大小排序确定,不需要再次循环排序       

 for(var a = 0 ; a <= (arr1.length-1) - 1; a++){

            // 内层循环,单元数据比较大小循环,每次循环出最大数值,不再进行比较循环

            for( var b = 0; b <= (arr1.length-1) - 1 - a; b++){ 

                // 判断相邻单元数据的大小

                if (arr1[b] > arr1[b+1]){

                    // 交换数据位置,数据大的向后排序

                    var middle = 0;

                    middle = arr1[b];

                    arr1[b] = arr1[b + 1];

                    arr1[b + 1] = middle;

                }

            }

        } 

 最后在控制台打印出这个数组----> 按照数据从小到大排序

console.log(arr1);

效果图

选择排序

        定义一个随机数组

var arr2 = [5,4,8,3,2,6,7,1,10,9];

       外层循环---实现排序循环次数,循环次数不大于数组的数据单元个数,最后一次循环排序,会将最后两个数值的大小排序确定,不需要再次循环排序        

for(var a2 = 0 ; a2 <= (arr2.length-1) - 1; a2++){

            // 定义一个起始位置数据(默认为最小值),存储起始位置数据的索引值

            var min = a2;

            // 内层循环,起始位置数据之前的数据,不参与下一次循环

            for(var b2 = a2 + 1; b2 <= arr2.length-1 ; b2++){

                // 判断如果有单元的数值,小于存储的索引值的数值,就存储这个数值的索引值

                if(arr2[min] > arr2[b2]){

                    min = b2;

                }

            } 

            内层循环执行完毕,判断如果存储的索引值不是起始的索引值,就与存储当前较小值位置的索引值,交换其对应的数值           

 if(min != a2){

                var middle = 0;

                middle = arr2[a2];

                arr2[a2] = arr2[min];

                arr2[min] = middle;

            } 

        }

       最后在控制台打印出这个数组----> 按照数据从小到大排序

console.log(arr2);

效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白的蓝色生活

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值