6.设计一个BubbleSort类。 (1)定义数组int[] arr = { 3, 1, 9, 30,7, 5,24,15,19 }; (2)用冒泡排序对数组元素从大到小排序。
时间: 2024-09-29 17:13:23 浏览: 8
为了设计一个名为`BubbleSort`的类来对给定的整数数组进行降序排序,你可以按照以下步骤进行:
```java
public class BubbleSort {
private int[] arr;
// 构造函数接收一个整数数组作为输入
public BubbleSort(int[] inputArray) {
this.arr = inputArray.clone(); // 拷贝原始数组,避免修改传入的参数
}
// 冒泡排序方法
public void bubbleSortDescending() {
boolean swapped;
for (int i = 0; i < arr.length - 1; i++) {
swapped = false; // 标记是否进行了交换
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;
swapped = true;
}
}
// 如果一轮循环未发生交换,说明已有序,提前结束
if (!swapped) {
break;
}
}
}
// 提供一个方法获取排序后的数组
public int[] getSortedArray() {
return Arrays.copyOf(arr, arr.length);
}
// 测试代码,用于初始化数组并排序
public static void main(String[] args) {
int[] arr = { 3, 1, 9, 30, 7, 5, 24, 15, 19 };
BubbleSort sort = new BubbleSort(arr);
sort.bubbleSortDescending();
System.out.println("排序后的数组:");
for (int num : sort.getSortedArray()) {
System.out.print(num + " ");
}
}
}
```
在这个类中,我们首先创建了表示数组的私有变量`arr`,然后提供了一个构造函数接受一个整数数组。`bubbleSortDescending`方法实现了冒泡排序算法,并将数组按降序排列。最后,`getSortedArray`方法返回排序后的数组副本,防止直接修改原数组。
在测试`main`方法中,我们创建了一个`BubbleSort`实例,并对给定的数组进行降序排序,然后打印出结果。