var arr = [3, 4, 1, 5, 2];
var temp = 0;
for (var i = 0; i < arr.length; i++) {
for (var j = i; j < arr.length; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
var arr = [3, 4, 1, 5, 2];
var temp = 0;
for (var i = 0; i <= arr.length-1; i++) {
for (var j = 0; j <= arr.length - i - 1; j++) {
if (arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
两种写法算法上没啥区别,区别在逻辑上
第一个在往前放小数,然后 j 循环的范围依次往后缩小
第二个王最后扔大数,然后 j 循环的范围依次减小