用java写一个冒泡排序法
时间: 2024-05-14 22:18:19 浏览: 43
下面是Java中的冒泡排序算法实现:
```java
public class BubbleSort {
public static void main(String[] args) {
int[] arr = { 5, 2, 8, 3, 1, 6 };
System.out.println("排序前:");
for (int i : arr) {
System.out.print(i + " ");
}
bubbleSort(arr);
System.out.println("\n排序后:");
for (int i : arr) {
System.out.print(i + " ");
}
}
public static void bubbleSort(int[] arr) {
if (arr == null || arr.length == 0) {
return;
}
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
}
```
输出结果为:
```
排序前:
5 2 8 3 1 6
排序后:
1 2 3 5 6 8
```
以上代码中,我们首先定义了一个 `bubbleSort` 方法,该方法接收一个整型数组作为参数,并对该数组进行冒泡排序。在 `bubbleSort` 方法中,我们首先判断传入的数组是否为空或者长度为 0,如果是则直接返回,否则进入排序算法的核心部分。
排序算法的核心部分是两重循环,第一重循环控制循环的次数,循环次数为数组长度减去 1;第二重循环控制每次比较的次数,比较次数为数组长度减去已排序的元素个数减去 1。
在每次比较中,我们判断当前元素是否大于其后一个元素,如果是,则将它们交换位置。这样,每次循环都会将当前未排序的最大值放到当前未排序元素的末尾,直到数组全部有序。
阅读全文