算法思路:
1、比较相邻的两个元素,如果第一个大于第二个则交换;
2、从第一对到最后一对,重复第1步;
3、作length-1次循环每次对比找到最大的数排到最后,直到排序完成;
示例代码:
public class Demo {
public static void main(String[] args) {
int[] values = { 3, 1, 6, 2, 9, 0, 7, 4, 5, 8 };
int temp = 0;
for (int i = 0; i < values.length - 1; i++) {
//boolean flag = true; 优化
for (int j = 0; j < values.length - 1 - i; j++) {
// 比较大小,换顺序
if (values[j] > values[j + 1]) {
temp = values[j + 1];
values[j + 1] = values[j];
values[j] = temp;
//flag = false;
}
//System.out.println(Arrays.toString(values));
}
//if (flag) {
// System.out.println("结束!!!");
// break;
//}
//System.out.println("###########");
}
for (int k = 0; k < values.length; k++) {
System.out.print(values[k] + " ");
}
}
}
优化注释:部分避免不必要的排序