冒泡排序

核能气质少年 提交于 2019-12-11 05:31:45

冒泡排序

1.基本思想
冒泡排序是一种简单的交换排序方法,其基本思想为:从头扫描待排序列的数据元素序列依次比较相邻两个数据元素的值的大小,从起始值开始,如果前面的数据元素的值,大于相邻后面数据元素的值,则交换它们的位置,逐步将待排序列变成有序序列。

2.思路方法
对长度为length的数组进行冒泡排序时,总共需要进行length-1轮。第一轮需要比较length-1次,第2轮需要比较length-2次,最后一轮需要比较length-i次。

第一轮,排序见下图:

在这里插入图片描述
第二轮到最后一轮,方法同第一轮方法相同,从头开始依次比较相邻数据元素值的大小,前大于后两数据元素值交换,后大于前则不动,继续向后进行对比,直到本轮所有数据元素对比完,再进行下一轮。

3.代码实现

public class bubbleSort {
	public static void main(String args[]) {
		int[] arr = { 3, 1, 6, 2, 9, 0, 7, 4, 5, 8 };
		for (int i = 0; i < arr.length - 1; i++) {
			for (int j = 0; j < arr.length -i - 1; j++) {
				if (arr[j] > arr[j + 1]) {
					int temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;

					}
				}
				System.out.println("第"+(i+1)+"轮:"+Arrays.toString(arr));
			

		}

		  System.out.print("冒泡排序后得:"); 
		  System.out.println(); for(int i=0;i<arr.length;i++) {
		  System.out.print(arr[i]+"  "); 
		  }
		 
	}
}

运行结果:

第1轮:[1, 3, 2, 6, 0, 7, 4, 5, 8, 9]
第2轮:[1, 2, 3, 0, 6, 4, 5, 7, 8, 9]
第3轮:[1, 2, 0, 3, 4, 5, 6, 7, 8, 9]
第4轮:[1, 0, 2, 3, 4, 5, 6, 7, 8, 9]
第5轮:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
第6轮:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
第7轮:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
第8轮:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
第9轮:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
冒泡排序后得:
0  1  2  3  4  5  6  7  8  9 

PS:有什么不对的地方还望大家批评指正,或者有什么意见建议大家也可以提出来一起讨论。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!