冒号排序法

冒号排序法

冒号排序法就是将按照数字的大小排列起来。可以从小到大,也可以从大到小。

比如,现在有一个数组[12, 1, 99, 10, 20];,现在想利用冒泡排序排列起来。

那么思路是,先遍历数组,得到每个数组的元素,假设第一个元素是最大的,然后比较他们后面的大小后面有比假设的元素大的,那么就将他们放在后面(下标+1)。

第一遍:[1,12,10,20,99]

第二遍:[1,10,12,20,99]

可以看出来这个数组还是比较简单地,比较两边就可以的出。那么如果是较为复杂的呢?

[5,65,69,9,93,96,10,52,8,59,]

        function maohao(arr) {
            for (var i = 0; i < arr.length - 1; i++) {
                for (var j = 0; j < arr.length - 1 - i; j++) {
                    if (arr[j] > arr[j + 1]) {
                        num = arr[j + 1]
                        arr[j + 1] = arr[j]
                        arr[j] = num
                    }
                }
            }
            console.log(arr);
        }
        var arr = [5, 65, 69, 9, 93, 96, 10, 52, 8, 59]
        maohao(arr)

显示效果如下:在这里插入图片描述

外层决定的是要比较多少遍我们用的循环,就让他都比较一下。

里层的循环是遍历数组 每一次交换的次数,因为每一遍便利之后就会多一个最后面的数字,所以最后的数字不用遍历,然后每次便利的元素就会减少一个,就是arr.length-1-i 。让每个元素与假设的元素进行比较然后进行互换位置。

可能代码比较难理解,但是你只要记住:

1.一共需要几遍, 用外层循环

2.每次要交换多少次,用里层内循环

3.交换两个变量的位置上。

快去试试吧!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值