java冒泡排序的方法代码,冒泡排序菜鸟教程java
本文给大家带来了一些java的知识,主要介绍如何实现冒泡排序。冒泡排序就是比较两个相邻的元素,从列表的开头到结尾,依次比较每一对相邻的元素。下面就来看看吧,希望对你有帮助。
如何解决写爬虫IP受阻的问题?立即使用。
冒泡排序原理
比较两个相邻元素。如果第一个比第二个大,交换他们的位置(升序,降序,反之亦然)。
从列表的开头到结尾,依次比较每对相邻的元素。就这样,值最大的元素通过交换“冒泡”到了列表的末尾,完成了第一轮“冒泡”。
重复上一步,继续从列表的开头比较相邻的元素。已经“冒泡”的元素不需要比较(一直比较到最后也可以,已经“冒泡”到后面的元素即使比较也不需要交换,没有比较也能减少步骤)。
从列表中继续比较,每一轮比较都会有一个元素“冒泡”成功。每轮要比较的元素个数会减少,直到只剩下一个元素没有“冒泡”(没有要比较的元素对),列表排序完成。
冒泡排序过程
以这个一维数组为例:
int[] array=new int[]{55,33,22,66,11 };
第一轮冒泡
图是第一轮‘冒泡’的数据初始序列柱形图。只要满足条件:“如果前一个元素大于下一个元素,则交换位置序列;否则,不予交换”。Array[0]=55 array[1]=33,满足条件,交换元素的位置顺序如图所示;Array[1]=55 array[2]=22,满足条件,交换元素的位置顺序如图所示;Array[2]=55 array[3]=66。如果不满足条件,则不交换元素的位置顺序,如图所示;Array[3]=66 array[4]=11,满足条件,交换元素的位置顺序如图所示;第一轮“冒泡”演示如图所示:
第二轮冒泡
图为第二轮‘冒泡’的数据初始序列柱形图;Array[0]33 array[1]=22,条件满足,交换元素的位置顺序如图5所示;Array[1]33 array[2]=55,如果不满足条件,则不交换元素的位置顺序,如图;Array[2]55 array[3]=11,条件满足,交换元素的位置顺序如图6所示;第二轮“冒泡”演示如图所示:
第三轮冒泡
图是第三轮‘冒泡’的数据初始序列柱形图;Array[0]=22 array[1]=33,如果不满足条件,则不交换元素的位置顺序,如图6所示;Array[1]=33 array[2]=11,满足条件,交换元素的位置顺序如图所示;第三轮“冒泡”演示如图所示:
第四轮冒泡
图是第四轮‘冒泡’的数据初始序列柱形图;Array[0]=22 array[1]=11。如果满足条件,交换“22”和“11”的位置顺序,如图所示;第四轮“冒泡”演示如图所示:
至此,数组的冒泡排序过程完成!
具体代码实现
BubbleSort类:
公共类BubbleSort {
公共静态void排序(int array[]) {
//i表示哪一轮“冒泡”,J表示元素“被访问”的索引。
//在每一轮“冒泡”中,J需要从列表的开头“访问”到array.length-1的位置。
for(int I=0;I array . length-1;i ) {
for(int j=0;j数组.长度-1-I;j ) {
if (array[j] array[j 1]) {
int temp=array[j];
array[j]=array[j 1];
array[j 1]=temp;
}
}
}
}}TestMain类
导入Java . util . arrays;公共类TestMain {
公共静态void main(String[] args) {
int[] array=new int[]{55,33,22,66,11 };
//排序前输出数组
System.out.print(排序前:);
system . out . println(arrays . tostring(array));
//调用BubbleSort类中的sort方法对数组array进行排序。
BubbleSort.sort(数组);
//输出冒泡排序数组数组
System.out.print(排序后:);
system . out . println(arrays . tostring(array));
}}运行结果如下:
前:【55,33,22,66,11】后排序:【11,22,33,55,66】推荐学习:《java学习教程》以上是Java实现的冒泡排序的详细内容,有详细图解。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。