本文为原创文章,转载请注明出处,谢谢你……
喜欢java并发编程的请加群:736156823
开始-->
冒泡排序(抖动排序、双边冒泡排序)
代码如下:
// 有效的数组下标
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并发编程的请加群:736156823
有问题欢迎指正,这是新鲜出炉的
代码未全面测试,留给你吧,哈哈……
结束-->
本文为原创文章,转载请注明出处,谢谢你……
网友评论