第1种方法、冒泡排序:始终将最大的值冒泡排序到最后面
var arr = [8,7,6,5,4,3,2,1];
//先找到最大的数,放到最后,进行两两比较,最大的数永远在最后面,利用两个for循环,外层的for用于循环多次判断数组的两两大小,里面的for循环用于判断前后两个数,也就是两两对比,大的值就对调位置,再用if用于判断,里面申明一个新的变量接收对调的值的临时存放,最终完成对调
for(var j = 0; j < arr.length -1; j++){
for(var i = 0; i < arr.length - 1 - j; i++){
if(arr[i] > arr[i+1]){
var tmp;
tmp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = tmp;
}
}
}
console.log(arr);
第2种方法、选择排序:将最小的数永远排序放在最前面
var arr = [8,7,6,5,4,3,2,1];
// 要比较的数
for (var i = 0; i < arr.length - 1; i++) {
// i = 8 依次和后面的 7,6,5,4,3,2,1比较
for (var j = i + 1; j < arr.length; j++) {
// 如果这一轮中的某个值 比当前要比较的值小 则交换位置
if (arr[j] < arr[i]) {
var tmp;
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
console.log(arr);