最脑残的方式
var arr = [40, 30, 20, 10];
for (var i = 0; i < arr.length - 1; i++) { //需要比较多少趟
for (var j = 0; j < arr.length - 1; j++) { //两两比较的次数
//两两比较,从小到大排序
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
};
减少两两比较的次数
var arr = [40, 30, 20, 10];
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]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
;
添加是否已经排序好的判断,减少比较次数
var arr = [10, 20, 30, 40];
for (var i = 0; i < arr.length - 1; i++) { //需要比较多少趟
var isSorted = true;
for (var j = 0; j < arr.length - 1 - i; j++) { //两两比较的次数
if (arr[j] > arr[j + 1]) {
isSorted = false;
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
};
if (isSorted) {
break;
}
};