冒泡排序(Java实现)

简介: 冒泡排序(Java实现)

冒泡排序

冒泡排序的思想:每一次将最大的数字往数组的最右边排序

                           假如一个数组有n个元素,则最多需要n-1趟就可以完成排序。

冒泡排序的时间复杂度:O(n^2).

图解实现(来自参考资料):

o_210526091849bubble.gif

 

                                                                                        冒泡排序

 

来,话不多说,先上实现程序

1publicstaticvoid bubbleSort(int[] arr){

2     int n = arr.length;

3     //循环最多n-1趟排序

4     for(int i=0;i<n-1;i++){

5         boolean flag = false;   //这里定义一个标志位,先不要管它的作用,下面会解释

6         //循环每一趟中的单次排序(确定一个最大的数)

7         for(int j=0;j<n-1-i;j++) {  //这里减 i 的原因 是每完成一次排序就少一个需要排序的元素

8             if (arr[j] > arr[j + 1]) {

9                 //交换两数(利用异或运算实现两数交换(不需要额外定义一个变量))

10                 arr[j] ^= arr[j + 1];

11                 arr[j + 1] ^= arr[j];

12                 arr[j] ^= arr[j + 1];

13                 //成功交换则将标志位置位true

14                 flag = true;

15            }

16        }

17         //如果在某一趟循环完毕了,而标志位flag还是false,说明此时数组已经完全排序好,此时可以结束程序,达到提高效率的作用。

18         //这就是我要设置标志位flag的意义之处。

19         if(flag == false){

20             break;

21        }

22    }

23 }

 

  测试代码:

1  publicstaticvoid main(String[] args) {

2         int[] arr = newint[]{5,2,4,9,8,3};

3        bubbleSort(arr);

4         for (int i: arr)

5             System.out.print(i+" ");

6     }

   测试结果:

2 3 4 5 8 9

现在我们来思考一下冒泡排序是否是稳定的排序?

    是稳定的。它不断的循环,相同的数排在前面的还是排在前面,不会改变顺序。

 

相关文章
|
3月前
|
存储 搜索推荐 算法
Java数组全套深入探究——进阶知识阶段2、冒泡排序
Java数组全套深入探究——进阶知识阶段2、冒泡排序
39 0
|
2月前
|
Java C语言
用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
用Java(C语言也可以看)实现冒泡排序和折半查找(详细过程图)+逆序数组
30 0
|
16天前
|
存储 算法 Java
wtf?java的冒泡排序还可以这样写
wtf?java的冒泡排序还可以这样写
9 1
|
1月前
|
Java 索引
Java练习题-用冒泡排序法实现数组排序
Java练习题-用冒泡排序法实现数组排序
14 2
|
2月前
|
算法 搜索推荐 Java
数据结构与算法(Java篇)笔记--冒泡排序
数据结构与算法(Java篇)笔记--冒泡排序
|
2月前
|
搜索推荐 Java 大数据
Java实现冒泡排序
Java实现冒泡排序
16 0
|
4月前
|
自然语言处理 搜索推荐 算法
用Java实现冒泡排序:实用教程带你入门
在处理一些特定系统功能时,经常需要使用冒泡排序。例如,在一个电子商务网站中,需要对商品进行排序和过滤。这个时候可以使用冒泡排序对商品进行排序,以便用户能够按照价格、销量、评分等不同字段进行排序。通过使用冒泡排序,系统可以提供更加灵活和个性化的排序选项,以便用户能够更加方便地找到他们想要的商品。
|
4月前
|
搜索推荐 Java
java实现冒泡排序和快速排序代码
java实现冒泡排序和快速排序
24 1
|
5月前
|
算法 搜索推荐 Java
数据结构与算法__冒泡排序__Java外比较器和内比较器(排序专题)
数据结构与算法__冒泡排序__Java外比较器和内比较器(排序专题)
35 0
|
6月前
|
搜索推荐 Java
冒泡排序算法的Java实现及优化
冒泡排序算法的Java实现及优化