/* 冒泡法排序 : sort()原理, 手写冒泡算法:曾经的面试必备技能
核心原理 : 数组中相邻的元素比较大小,然后交换位置
*/
var arr = [88,20,100,60,50];//[20,50,60,80,100]
//遍历数组,相邻元素比较,交换位置
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;
};
};
/* [88,20,100,60,50]
i = 0 88 > 20 交换位置 [20,88,100,60,50]
i = 1 88 < 100 不交换位置 [20,88,100,60,50]
i = 2 100 > 60 交换位置 [20,88,60,100,50]
i = 3 100 > 50 交换位置 [20,88,60,50,100]
// i = 4 100 undeifned 无意义
结论 : (1)数组长度为5 (length), 只需要PK 4 (length-1) 次
(2) 第一轮PK,可以找出数组最大元素 放到最后面
*/
console.log(arr);
//第二轮PK : 找出第二大数字
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;
};
};
console.log(arr);
//第三轮PK : 找出第三大数字
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;
};
};
console.log(arr);
//第四轮PK : 找出第四大数字
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;
};
};
console.log(arr);
</script>