冒泡排序
理解:
冒泡排序算法的流程以下:javascript
核心思想:
比较两个相邻位置若是位置错误就交换
图解:
html
Comparison Sorting Visualization点击连接后选择Bubble Sortjava
代码实现:算法
function bubbleSort (arr) {
let len = arr.length
// 经过交换每次选出最大的放大哦最后,排到第二位时候一次交换完成,
// 因此排多少次是固定的 len - 1
for (let i = 1; i < len; i++) {
// 每次把最大的数推到最后,最后排序已经固定了,没有必要再排
for (let j = 1; j <= len - i; j++) {
if (arr[j] < arr[j - 1]) {
[arr[j], arr[j - 1]] = [arr[j - 1], arr[j]]
}
}
}
return arr
}
console.log(bubbleSort([1,3,9,8,7,2]))复制代码
学习算法遇遇到的好的资料
一个不错的博客 bubkoo.com/
算法可视化的网站Data Structure Visualization学习