冒泡排序算法应该算是每个开发者入门必学的基础算法,它逻辑清晰简单,代码实现也并不复杂,这里用自己的话语来总结一下。
(这些为了方便随便打开了一个node项目写的,其他Java ,PHP,C等也是一样的道理,算法讲究的只是一个思维模式,知道怎么去实现就行,不要死抠语言)
先说简单的普通冒泡排序:
冒泡排序既然是一个排序算法,那么它就一定是有一个循环排序的过程,其实它的原理很简单,就是两层for循环嵌套,外层for循环控制总的循环次数,内层则是不断拿前一个值和后一个值去比较,不断把小的放前面(当然你也可以把大的放前面)。那么这里有几个坑点是要注意的:
坑点1:外层for循环要记得下标和数组长度的对应,下标从0开始,那么0~9就有十个数了,千万别用正常计数思维想着只有九个数,在用.length方法的时候要注意,不然在最后一轮循环会出现undefined拿不到值或者null point之类的错误。

比如这里数组长度0~9乱序,就是有十个数,所以 list.length 长度就是10,在写判断条件时候如果写a <= list.length还跑循环的话,就会出现undefind了。


本文详细介绍了冒泡排序和双向冒泡排序的基本原理和常见问题,强调了算法理解和实践的重要性。通过解析冒泡排序的四个关键坑点,帮助开发者避免常见错误。此外,还概述了双向冒泡排序的工作机制,指出其在效率上的优势,并列举了双向冒泡排序的难点和需要注意的坑点。
最低0.47元/天 解锁文章
2127

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



