冒泡排序很简单,两重循环即可。今天有伙伴问起原理,用一个图详细解释其冒泡原理。
核心原理是:把每一个元素和数组中的每一个元素进行位置比较,如果满足移动的条件,相比较的两个元素交换位置(冒泡)
先撸代码,代码简短:
function bubbleSort(arr) {
for( let i=0; i<arr.length; i++ ) {
for(let j=0; j<arr.length; j++) {
// 比较大小,交换顺序,也就是冒泡
let temp = arr[i];
if(arr[i] <= arr[j]){
arr[i] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
var originalArr2 = [12,9,16,7];
let newArr2 = bubbleSort([...originalArr2]);
console.log(`bubbleSort end, newArr2 = ${JSON.stringify(newArr2)}`);
上个流程图,画的还算比较细,花费了两个来小时。。。
2020.05.03早上需要修改一个图,结果发现processon出BUG,只保存了一半,又花一个小时,虽然简单,但是画起来真不容易。