JavaScript学习&论如何优美且墨迹的倒装数组元素:冒泡排序

一个渣渣PHP自学者 2020-02-14 PM 210℃ 0条

先上图。
论如何优美且墨迹的倒装数组元素:54321优美的倒转成12345

QQ截图20200214212540.png

先看我们最简陋的代码

var less = [5, 4, 3, 2, 1];
var newArr = [];
for (var i = less.length - 1; i >= 0; i--) {
        newArr[newArr.length] = less[i];
}
console.log(newArr);

解释一下:
先声明一个数组放入我们需要变换的内容
然后再声明一个空数组,存放我们倒装过来的元素
把arr数组的索引号取过来减一,给空数组newArr第0个元素(newArr.length)
也就是5、4、3、2、1数组索引号是0、1、2、3、4
arr.length是5,所以得减一
采取递减方法


冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。重复地进行直到没有再需要交换

然后使用我们高逼格的墨迹的冒泡排序法:

    var less = [5, 4, 3, 2, 1];
    for (var i = 0; i <= less.length - 1; i++) {
         for (var j = 0; j <= less.length - i - 1; j++) {
               if (less[j] > less[j + 1]) {
                    var temp = less[j];
                    less[j] = less[j + 1];
                     less[j + 1] = temp;
                }
          }
    }

console.log(less);

解释一下:
最外层的for是循环次数

  • 五个数据我们要走四趟,所以数组长度减一(less.length-1)

里层的for是交换的次数

  • 第一次我们要交换四次,所以数组长度减去循环次数减去一(less.length-i-1)
  • 第二次交换三次
  • 第三次交换两次
  • 第四次交换一次

最后的if语句是前一个和后一个数组元素相比较

  • less[j] = 5 也就是数组的索引号 从0开始 less[j +1 ] = 4 索引号1(0+1)

在百闲之中,又水了一篇文章。可以来diss我了。

非特殊说明,本博所有文章均为博主原创。

评论啦~