在js的学习中,总会遇到各种各样的算法,今天来详解下js的冒泡排序。
大致原理:
循环整个数组,如果前面的数值比后面的数值大,则将这两个数字的位置调换。
代码
最后的结果
然后我们发现,数组按从小到大依序排列。
现在看着代码是不是有点懵逼,敲黑板,接下来仔细看:
[8,99,3,88,55,76,21,44]
我们的数组原来是这样的,然后我们只让它循环一次,看看会发生什么:
最后得到结果:
原数组:
我们把两个数组对比一下,发现99到了数组的最后面。
我们来脑补一下循环过程。当 j=0 时 , arr[0]=8 而 arr[1]=99 ,然后两个相比较
8并不必99大,所以没什么变化。
当 j=1 时,arr[1]=99 而 arr[2]=3 , 然后两个相比较 99比3大,所以两个位置互换。
而数组就会变成
然后顺序执行下去,因为99是最大的一个数,所以当一次循环完成之后,99就会到数组的最后面。
现在是不是感觉思路清晰多了。
说到这里,规律就清楚了,每次将剩下数组里面最大的一个数排到最后面。
以上。