冒泡算法
冒泡排序(BubbleSort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
Java编码实现
了解了冒泡排序的基本定义之后,根据其思想大家来根据题主的要求看看如何用Java实现冒泡排序算法,代码如下图:
基本原理就是如下的逻辑走向:
执行后输出如下:
有没有发现什么问题?是不是到了第6次已经完成排序了?后面的是不是就属于浪费了?所以大家需要优化一下,当他的顺序已经排序完毕了就不再进行排序了,优化后的代码如下:
执行后输出:
可以看出来只执行了6次排序。
算法复杂度
那么冒泡算法的复杂度是怎样的呢?相信大家看到这已经基本上可以算出来了:
时间复杂度:两层循环O(n²);
空间复杂度:还是原来的数组,没有开辟新的内存空间,所以是O(n)。
以上就是冒泡算法Java版的实现方案,大家有什么看法呢?欢迎评论区交流讨论,共同学习~