您的位置:首页 > 其它

改进的冒泡排序

2017-08-28 20:50 411 查看
传统的冒泡是从左到右冒泡,改进为两边同时冒泡,边界值做标记当left>right时排序终止。

public class MyMain {

public static void main(String[] args) {

int a[] = { 3, 21, 1, 4, 7, 6, 9, 11, 22, 43, 56, 78,0,-1 };
int len = a.length;
int left = 0;
int right = a.length - 1;
for (int i = 0; i < len; i++) {
int r = len - i - 1;
int l = i;
if (l < r) {
for (int j = 0, k = len - i - 1; k > i && j < len - i - 1; j++, k--) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
if (a[k - 1] > a[k]) {
int tt = a[k - 1];
a[k - 1] = a[k];
a[k] = tt;
}
}
}
}

for (int i = 0; i < len; i++)
System.out.print(a[i] + ",");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: