本文為原創(chuàng)文章,轉(zhuǎn)載請注明出處,謝謝你……
喜歡java并發(fā)編程的請加群:736156823
開始-->
冒泡排序(抖動(dòng)排序、雙邊冒泡排序)
代碼如下:
// 有效的數(shù)組下標(biāo)
public void shardingBubble(int a[], int left, int right) {
if (null == a) {
return;
} else if (left < 0 || right < 0) {
return;
} else if (a.length <= 0) {
return;
} else if (right - left <= 0) {
return;
} else {
int lf = left;
int rf = right;
out:
for (int i = 0; i <= right; i++) {
// 從右邊開始,也就是小的上浮
if ((i % 2) == 0) {
boolean swap = false;
for (int j = rf; j > lf; j--) {
if (a[j] < a[j - 1]) {
swap(a, j - 1, j);
swap = true;
}
}
lf = lf + 1;
if (!swap) {
break out;
}
} else {
// 從左邊開始,也就是大的下沉
boolean swap = false;
for (int k = lf; k < rf; k++) {
if (a[k] > a[k + 1]) {
swap(a, k, k + 1);
swap = true;
}
}
rf = rf - 1;
if (!swap) {
break out;
}
}
if (lf >= rf) {
break out;
}
}
}
}
喜歡java并發(fā)編程的請加群:736156823
有問題歡迎指正,這是新鮮出爐的
代碼未全面測試,留給你吧,哈哈……
結(jié)束-->
本文為原創(chuàng)文章,轉(zhuǎn)載請注明出處,謝謝你……