冒泡排序 - Bubble Sort
2017-09-29 18:27 鸣仁 阅读(264) 评论(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]);
}
浙公网安备 33010602011771号