冒牌排序的原理
// 冒泡
// 随便从数组中拿一位数和后一位比较,如果是想从小到大排序,那么就把小的那一位放到前面,
// 大的放在后面,简单来说就是交换它们的位置,如此反复的交换位置就可以得到排序的效果。
// 最慢 最容易实现得排序算法
// 利用添加中间变量实现
var arr2 = [1, 2, 34, 5, 7, 8, 1, 2];
function sortArray(arr) {
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;
}
}
}
return arr;
}
console.log(sortArray(arr2));
// 不添加中间变量实现 实现两个变量之间的值对调
// a = 10; //第一个元素 7
// b = 5; //下一个元素 3
// a = a + b; // a(15) = 10 +5;
// b = a - b; // b(10) = 15 - 5;
// a = a - b; // a(5) = 15 - 10;
function sortArray2(arr) {
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]) {
arr[j] = arr[j] + arr[j + 1];
arr[j + 1] = arr[j] - arr[j + 1];
arr[j] = arr[j] - arr[j + 1];
}
}
}
return arr;
}
console.log(sortArray2(arr2));
// sort方法排序
// a - b<0,a会排在b前面 a - b>0 b会排在a前面 a- b = 0相对位置不变
var newArr = arr2.sort(function (a, b) {
return a - b;
});
console.log(newArr);