冒泡排序
比较两个相邻的值,若后面的比前面的小,则将小的元素排到前面。依次循环直到结束。
代码
let arr = [10,20,9,8,79,200,65,100]
function sortHandle(arg){ //
let result = JSON.parse(JSON.stringify(arg)) // 拷贝一份儿,互不干扰
for(let i = 0; i < result.length; i++) { // 第一次循环,从0开始到结束,循环length次
for(let j = 0; j < result.length - i; j++) { // 再进行一次循环,进行对比
if(result[j] > result[j + 1]) { // 若前一项大于后一项,修改位置
let temp = result[j]
result[j] = result[j + 1]
result[j + 1] = temp
}
}
}
return result
}
效果

分析
主要是有两次循环
i = 0 外层循环过程中,内层进行循环j = 0 到 j = end(最后),第一遍排序将最大的数排到最后,结果应该是[10,9,8,20,79,65,100,200]
i = 1 再次执行j = 0 的循环,由于最大的数已经在最后了这也是j < arr.length - i 的巧妙之处,没有必要再次判断后面的最大的数(不写其实也没事的,简单理解成性能优化吧,不去执行没必要的操作)
i = 2 再次执行j = 0 的循环,依次类推
每次 i 循环中都会循环出当前循环中最大的数,并把其排到后面(一层层的排到后面)
然后就是将前一项值和后一项值赋值改变
end

本文详细介绍了冒泡排序的原理和实现过程,通过示例代码展示了如何使用JavaScript进行冒泡排序。冒泡排序通过两层循环,逐步将最大(或最小)的元素移动到正确的位置,从而实现排序。在每一轮循环中,都会将当前未排序部分的最大元素冒泡到末尾。这是一种基础但重要的排序算法,对于理解排序思想有着重要作用。
970

被折叠的 条评论
为什么被折叠?



