关键词:趟,相邻两两之间
趟: 每将数组中的一个数归位,称为“一趟”
bubble.pngprivate void bubbleSort(int[] pInts) {
for (int i = 0; i < pInts.length; i++) {
// 设置标记,如果没有大小交换,就跳出此次比较
boolean swap = false;
// 比较相邻两位的大小,排除数组较比越界的可能,在长度上-1,在遍历到倒数第二个的时候,j 就不再向后取值
for (int j = 0; j < pInts.length - 1 - i; j++) {
if (pInts[j] > pInts[j + 1]) {
swap(pInts, j, j + 1);
swap = true;
}
}
// 此时说数组中的元素已经按照要求排好了顺序,如果此时外圈的循环还没结束,就手动跳出
if (!swap) {
break;
}
}
}
private void swap(int[] pInts, int a, int b) {
pInts[a] = pInts[a] + pInts[b];
pInts[b] = pInts[a] - pInts[b];
pInts[a] = pInts[a] - pInts[b];
}
网友评论