首页 > 编程知识 正文

java实现数组冒泡排序(java冒泡排序)

时间:2023-05-06 16:53:31 阅读:68449 作者:2792

基于Java实现的title:冒泡排序算法

tags:鼓泡排序算法

冒泡算法原理及代码实现:一、冒泡算法原理冒泡算法只操作相邻两个数据。 每次冒泡操作都要比较两个相邻的元素,以确定是否满足大小关系要求。 如果不满意就让两个人交换。 这样,在一次鼓泡中将至少一个元素移动到应该存在的位置,重复n次,即可完成n个数据的排序工作。

例如,按从小到大的顺序对数据组4、5、6、3、2和1进行排序。 第一个鼓泡操作的详细过程如下:

进行鼓泡操作后,可以看到6个元素保存在正确的位置。 要完成所有数据的排序,只需进行6次这样的鼓泡操作即可。

实际上,上述鼓泡过程可以优化。 如果冒泡操作不再交换数据,则表示完全有序,无需继续执行后续的冒泡操作。 例如,在下面的示例中,如果对其中的六个元素进行排序,则只需要四次冒泡操作。

二、气泡排序算法代码实现package com.company; import java.util.Arrays; 公共类气泡排序{//冒泡算法。 a是需要排序的数组public static int [ ] bubble sort [ ] a ] { intlen=a.length; if(len==0||len==1) {返回a; }for(intI=0; ilen; I ) for(intj=0; j len-i-1; j () if ) a[j]a[j1] ) /更换int tmp=a[j]; a[j]=a[j 1]; a[j 1]=tmp; } }返回a; } publicstaticvoidmain (字符串(args ) int ) a=newint ) ) 3、5、4、1、2、6 ); for(intI=0; ia.length; I ) system.out.println(a[I]; } BubbleSort b=new BubbleSort (; b.bubblesort(a; for(intI=0; ia.length; I ) system.out.println(a[I]; } system.out.println (arrays.tostring (a ) ); }输出结果:

34126123456[1、2、3、4、5、6]改进的冒泡算法代码:

打包软件; import java.util.Arrays; 公共类气泡排序{//冒泡算法。 a是需要排序的数组public static int [ ] bubble sort [ ] a ] { intlen=a.length; 布尔标志=假; for(intI=0; ilen-1; I ) for(intj=0; j len-i-1; j () if ) a[j]a[j1] ) /更换flag=true; int tmp=a[j]; a[j]=a[j 1]; a[j 1]=tmp; }system.out.println('I1 ) '经过周转排序后的数组'); 系统. out.println (arrays.tostring (a ) ); if (! flag () { break; }else{ flag=false; } }返回a; }公共语音(字符串(args ) int ) a=新int ) ) 1、2、3、7、6 ); //for(intI=0; ia.length; I ()/system.out.println ) a[I]; //} BubbleSort b=new BubbleSort (; b.bubblesort(a; //for(intI=0; ia.length; I ()/system.out.println ) a[I]; //system.out.println (arrays.tostring (a ) ); }输出结果如下。

第一次排序后的数组[1、2、3、6、7]第二次排序后的数组[1、2、3、6、7][1、2、3、6、7]鼓泡的过程只涉及相邻数据的交换操作,只需要一定水平的临时空间

在气泡排序中,只有交换可以更改两个元素的前后顺序。 为了确保冒泡排序算法的稳定性,如果相邻两个元素的大小相等,则不进行交换,相同大小的数据在排序前后不会改变顺序。空间复杂度为O(1)

鼓泡算法的时间复杂性是多少?

在最佳情况下,要排序的数据已经有序,只需进行一次鼓泡操作就可以了。 因此,在最佳情况下,时间的复杂性是o(n )。 在最坏的情况下,如果要排序的数据正好按照相反的顺序排列,则需要n次鼓泡操作,因此最差的时间复杂度为o(n^2)。 平均复杂度分析显示,原地排序算法

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。