在日常开发中经常会遇到一类问题,就是对一个集合的数据进行排序
掌握一些排序算法,对于日常开发是非常有帮助的
今天介绍一下冒泡排序法
算法逻辑
![1593fc07bf4d005e39ef0c8dd9d1bb88.png](https://img-blog.csdnimg.cn/img_convert/1593fc07bf4d005e39ef0c8dd9d1bb88.png)
时间复杂度
由上图逻辑可以得出,冒泡排序的循环次数为
![b22ef7d8108d21b02feb7438c1fd6854.png](https://img-blog.csdnimg.cn/img_convert/b22ef7d8108d21b02feb7438c1fd6854.png)
由循环次数可以得出,冒泡排序的时间复杂度为
![7946b5ffc26875370cd71298695d4bd0.png](https://img-blog.csdnimg.cn/img_convert/7946b5ffc26875370cd71298695d4bd0.png)
空间复杂度
由上图逻辑可以得出,冒泡排序每次交换所使用的临时变量为 i,j,tmp
![5f015cd13f61c001cc61cd8e999f7ce4.png](https://img-blog.csdnimg.cn/img_convert/5f015cd13f61c001cc61cd8e999f7ce4.png)
由临时变量数可以得出,冒泡排序的空间复杂度为
![735c56331aa7188fb071eb741cd3f1d4.png](https://img-blog.csdnimg.cn/img_convert/735c56331aa7188fb071eb741cd3f1d4.png)
java代码实现
![c1be7495aa22760e4de6be9a01a82147.png](https://img-blog.csdnimg.cn/img_convert/c1be7495aa22760e4de6be9a01a82147.png)
public int[] sortByBubble(int[] data) { //获取数组总长度 int size = data.length; for (int i = 0; i < size; i++) { for (int j = 0; j < size - i - 1; j++) { //Todo: 请关注这里 //if判断里使用 “>” 代表从小到大排序 //if判断里使用 “ data[j + 1]) { int tmp = data[j]; data[j] = data[j + 1]; data[j + 1] = tmp; } } } return data;}
小结
今天主要介绍了单集合排序的一种排序算法——冒泡排序
小伙伴们都了解了吗?
下次小Top将继续介绍单集合排序算法
对于今天的内容有任何疑问或问题,欢迎留言或讨论 ^-^