一个关于排序的问题:既然java语言提供了排序算法的封装,为什么我们还要自己写冒泡排序?什么时候用到冒泡排序?
目的是为了让你学习,冒泡排序是最容易理解的排序算法。
java封装好的是快排吧,首先快排是不稳定排序,只是平均时间复杂度最低而已。简单排序中直接插入最好,快速排序最快,当文件为正序时,直接插入和冒泡均最佳。当数据量过大时堆排序的优势又体现出来,学习排序更多的是学习一种算法和思想
自我实践有助于更好地理解算法本身的思想,及执行流程。在学习本身这件事情上,拿来主义是不可取的,还需要自己动手才行啊。
你不觉得这种算法很美吗
冒泡排序对程序员来说好比筷子一样
是为了让你更好的了解算法的思想
1、我们自己写算法才能让我们更好的理解算法的思想,锻炼我们的思维,打开更多的解题思路。
我们不仅仅学冒泡算法,还有各种各样的算法,它们或多或少的都在一些编程语言中有封装。但是我们还是要去学习它们的思路,这样我们才知道什么时候去用什么样的算法,或者什么样的算法能给我们带来帮助。
2、如同为什么我们要去看String的源定义,为什么要去看Map的源码,为什么要去看List、Set的具体实现。他们都已经封装好了,我们去看源码是因为读懂了它们的具体实现,我们才能更懂它们。
3、我们学习算法,但有些时候,不能单纯的运用某一种算法就能将我们的问题解答出来,这样就需要我们去灵活的搭配运用。不求甚解者,如何如臂使指。
打个比喻,正如现在已经有各种代步工具,但是我们还是要从走路学起
算法的学习是由浅入深的,冒泡也算是基础的排序算法了
冒泡排序是排序中必会的一种排序算法,这样可以明白循环嵌套的应用,同时冒泡虽然不是最快的排序算法,但是是最稳定的排序算法!