冒泡排序
冒泡排序介绍
冒泡排序就是把把第一个元素与第二个元素比较,如果第一个比第二个大,则交换他们的位置。接着继续比较第二个与第三个元素,如果第二个比第三个大,则交换他们的位置….
我们对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样一趟比较交换下来之后,排在最右的元素就会是最大的数。
除去最右的元素,我们对剩余的元素做同样的工作,如此重复下去,直到排序完成。
为方便理解我还准备了动图:
性质:1、时间复杂度:O(n2) 2、空间复杂度:O(1) 3、稳定排序 4、原地排序
实现代码:
1 | package fg; |
输出结果:
1 | 第1轮:4,6,8,1,2,3,7,9, |
冒泡排序优化
由以上代码输出可知第四轮就已经达到了排序要求,那么从第四轮开始就是多余的啦!
1 | 第1轮:4,6,8,1,2,3,7,9, |
因此需要优化,那么该怎么优化呢………..
其实思路很简单,就是加一个比较条件(当在比较失败的时候我们就退出整个循环)
优化代码:
1 | package fg; |
输出结果:
1 | 第1轮false4,6,8,1,2,3,7,9, |
总结
冒泡排序作为十大经典排序之一,是必须要掌握的算法,实际工作中使用频率也非常高。其次,本文采用先展示代码,博主个人认为博客因该尽量短小精悍,主要的内容在3分钟内解释完!更多的感悟肯能会出现在结语部分。虽说是很基础的内容,但是金典还是记录一下,就像86版西游记一样,经典就是不一样,哈哈哈 不扯了,继续努力!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 黄皖's Blog!
评论