冒泡排序
工作原理: 重复的访问要排序的序列,一次比较两个元素,如果他们的顺序错误就把它们交换过来,重 复进行访问,直到排序完成,越小的元素会经过不停的交换慢慢浮到序列的最上层。 即每轮循环把最大的数放在最后,与选择排序的区别,无需记录最大数的位置,一边比较一边交换位置。
Java代码如下:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/490884633727f1c8cfeb142c0d9864c5.png)
输出结果:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f2967cb6e9a63fa950abb2a6a363af20.png)
时间复杂度
冒泡N-1轮,每轮最长N-1次,最短1次,总共(N-1)+(N-2)+……+1:O(N^2)
,每次操作只有常数次比较和赋值,复杂度是O(N^2)。
稳定性
每次都比较相邻的元素,只有前者比后者大才交换位置,是稳定排序。
上一篇:java中的排序算法——快速排序
下一篇:java中的数据结构——堆