冒泡排序 - 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]); }