经典算法冒泡排序,最基本的排序方法,算法如下定义:
冒泡排序算法的运作如下:(从后往前)冒泡排序在Java 语言中的程序如下所示:
public static void bubbleSort(int[] a){for(int i=0;i<a.length-1;i++)for(int j=0;j<a.length-1;j++){if(a[j]>a[j+1]){int temp=a[j];a[j]=a[j+1];a[j+1]=temp; }}}
32,44,12,67,109,3,200
0 , 1, 2, 3, 4, 5, 6那么,我们需要将程序进行补全,如下面程序,即为补全之后的程序:
package st1;
public class Bubble
{//冒泡排序算法public static void bubbleSort(int[] a){for(int i=0;i<a.length-1;i++)for(int j=0;j<a.length-1;j++){if(a[j]>a[j+1]){int temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}//用于输出结果的方法public static void show(int [] a){for(int i=0;i<a.length;i++){System.out.print(a[i]+" ");}System.out.println();}//主方法public static void main(String[] args){int [] arr={32,44,12,67,109,3,200};show(arr);//调用显示方法bubbleSort(arr);//调用冒泡排序算法show(arr);//调用显示方法}
}
可以看到,完成了从小到大的排列顺序,那么,排序时具体的过程有是如何呢?
这是我们进行对程序进行修改,如下所示:
package st1;
public class Bubble
{//冒泡排序算法public static void bubbleSort(int[] a){for(int i=0;i<a.length-1;i++){System.out.println("第"+(i+1)+"次循环:");for(int j=0;j<a.length-1;j++){if(a[j]>a[j+1]){int temp=a[j];a[j]=a[j+1];a[j+1]=temp;} //修改点 System.out.print("["+i+" ,"+j+" ][" );show(a);}} }//用于输出结果的方法public static void show(int [] a){for(int i=0;i<a.length;i++){System.out.print(a[i]+" ");}System.out.println();}//主方法public static void main(String[] args){int [] arr={32,44,12,67,109,3,200};
// show(arr);//调用显示方法bubbleSort(arr);//调用冒泡排序算法
// show(arr);//调用显示方法}
}
第1次循环:
0 0 :32 44 12 67 109 3 200
0 1 :32 12 44 67 109 3 200
0 2 :32 12 44 67 109 3 200
0 3 :32 12 44 67 109 3 200
0 4 :32 12 44 67 3 109 200
0 5 :32 12 44 67 3 109 200
第2次循环:
1 0 :12 32 44 67 3 109 200
1 1 :12 32 44 67 3 109 200
1 2 :12 32 44 67 3 109 200
1 3 :12 32 44 3 67 109 200
1 4 :12 32 44 3 67 109 200
1 5 :12 32 44 3 67 109 200
第3次循环:
2 0 :12 32 44 3 67 109 200
2 1 :12 32 44 3 67 109 200
2 2 :12 32 3 44 67 109 200
2 3 :12 32 3 44 67 109 200
2 4 :12 32 3 44 67 109 200
2 5 :12 32 3 44 67 109 200
第4次循环:
3 0 :12 32 3 44 67 109 200
3 1 :12 3 32 44 67 109 200
3 2 :12 3 32 44 67 109 200
3 3 :12 3 32 44 67 109 200
3 4 :12 3 32 44 67 109 200
3 5 :12 3 32 44 67 109 200
第5次循环:
4 0 :3 12 32 44 67 109 200
4 1 :3 12 32 44 67 109 200
4 2 :3 12 32 44 67 109 200
4 3 :3 12 32 44 67 109 200
4 4 :3 12 32 44 67 109 200
4 5 :3 12 32 44 67 109 200
第6次循环:
5 0 :3 12 32 44 67 109 200
5 1 :3 12 32 44 67 109 200
5 2 :3 12 32 44 67 109 200
5 3 :3 12 32 44 67 109 200
5 4 :3 12 32 44 67 109 200
5 5 :3 12 32 44 67 109 200
从中挑选出部分进行分析,如下:
冒泡排序 升序 小到大
第一轮排序 交换两个数的位置 6次
经过上述过程,最终实现了排序
本文发布于:2024-01-31 08:44:50,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170666189127272.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |