import java.util.Arrays;
/**
*
* @author cnkeysky
*/
public class DemoTest {
public static void main(String[] args) {
int[] arr = {9, -1, 3, 8, 0, -2, 7};
bubbleSort(arr);
System.out.println("排序后:");
System.out.println(Arrays.toString(arr));
}
public static void bubbleSort(int[] arr) {
int len = arr.length;
int l = 0;
int r = len - 1;
while (l < r){
boolean flag = false;
for (int j = l; j < r; ++j) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = true;
}
}
--r;
for (int j = r; j > l; --j) {
if (arr[j] < arr[j - 1]) {
int temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
flag = true;
}
}
++l;
if (!flag) {
break;
}
System.out.printf("第 %d 次排序: ", l);
System.out.println(Arrays.toString(arr));
}
}
}
双向冒泡-Java
最新推荐文章于 2024-11-19 20:46:35 发布
本文详细介绍了冒泡排序算法的实现过程,通过一个具体的示例展示了如何使用Java进行冒泡排序,包括正向和反向比较,以及如何优化排序过程以提高效率。

1595

被折叠的 条评论
为什么被折叠?



