代码改变世界

冒泡排序 - Bubble Sort

2017-09-29 18:27  鸣仁  阅读(255)  评论(0编辑  收藏  举报

思想: 一组数,自左向右(自上而下)大的往下沉,小的往上冒,相邻的两数比较,如果与期待顺序相反,就交换位置

测试数据: int[] BS = { 11, 33, 77, 22, 55 }

目标数据: 11,22,33,55,77

分析: 相邻数据做比较,大的往后调,小的排在前面

第一轮: 11<33 保持  11, 33, 77, 22, 55

 

第一轮: 33<77保持   11, 33, 77, 22, 55

第一轮: 77>22 大的后调 11,33,22,77,55

第一轮:77>55  大的后调 11,33,22,55,77

经过第一轮,现在数组变为: {11,33,22,55,77},下面开始第二轮排序

第二轮:11<33 保持 11,33,22,55,77

第二轮:33>22 大的后调  11,22,33,55,77

 

 其实到此为止,第二轮还未结束,还有第三轮,第四轮,但是都不会真正的进入循环体,因为顺序已经是我们想要的了

 外层循环控制循环次数,内层循环来做数据比较。

public static void main(String[] args) {
		int[] BS = { 11, 33, 77, 22, 55 };
		int length = BS.length;
		int temp = 0;
		for (int i = 0; i < length - 1; i++) {
			for (int j = 0; j < length - 1; j++) {
				if (BS[j] > BS[j + 1]) {
					temp = BS[j];
					BS[j] = BS[j + 1];
					BS[j + 1] = temp;
				}
			}
		}

		for (int i = 0; i < BS.length; i++)
			System.out.println(BS[i]);

	}