需求
需要写一个优化后的冒泡排序。
解决
- 为了简化代码,并且省去控制用的 flag,可以每次只排列剩余中的最小的,这
样可以使用 i
来同时控制排列的范围和当前最小的位置,使用 j
来控制进行比较的位置。
- 需要注意:
i
的表示控制排列的范围和当前最小位置,所以
i
的取值不包含最后一个数,毕竟比较至少要有两个数才能比较。 j
是进行比较的数值,所以 j
是从 i
的后一个数开始,直到最后一个数。
public static void bubbleSort(float[] src) {
for (int i = 0; i < src.length - 1; i++) {
for (int j = i + 1; j < src.length; j++) {
if (src[i] > src[j]) {
float tmp = src[i];
src[i] = src[j];
src[j] = tmp;
}
}
}
}