冒泡排序
写了个冒泡排序跟网上的方法不一样,看不出来自己写的问题和网上的区别,似乎是逆向了不知道能不能这么写会不会不太好?
var arr = [-2,153, 55, 66, 77, 2];
for (let i = 1; i < arr.length; i++) { //i为1减少一次无效循环
for (let j = 0; j < i; j++) {
if (arr[i] > arr[j]) {
var num = arr[i];
arr[i] = arr[j];
arr[j] = num;
}
}
}
console.log(arr);
其实冒泡排序的原理就是比大小,第一个和第二个进行比较如果为true的话就互换位置,网上推荐的方法:
var arr = [-2,153, 55, 66, 77, 2];
for (let i = 0; i < arr.length-1; i++) {
for (let j = 0; j < arr.length-1-i; j++) {
if (arr[j] > arr[j+1]) {
var num = arr[j];
arr[j] = arr[j+1];
arr[j+1] = num;
}
}
}
console.log(arr);
循环次数是一样的。分析了一下两边的执行过程大概是:
感觉上常用的看起来更符合冒泡呢,也不知道自己的行不行。总之还是推荐大家用常用方法。