初始化一维数组a=[7,5,2,9,1,3,10,6],并实现以下功能: (1)编写bubble()方法,用起泡法实现对数组由大到小排序; (2)编写halfFind()方法,用折半查找法实现对值“3”的查找。若找到进行输出,否则输出该值不存在。
时间: 2024-09-23 09:03:59 浏览: 32
首先,让我们创建一个一维数组 `a` 并使用 Java 实现上述两个功能。我们将定义一个名为 `ArrayExample` 的类,并在其中包含这两个方法。下面是完整的代码:
```java
public class ArrayExample {
private int[] a = {7, 5, 2, 9, 1, 3, 10, 6};
// (1)Bubble Sort method to sort the array in descending order
public void bubbleSort() {
for (int i = 0; i < a.length - 1; i++) {
for (int j = 0; j < a.length - 1 - i; j++) {
if (a[j] < a[j + 1]) {
// Swap elements
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
System.out.println("Sorted array in descending order:");
printArray(a);
}
// Function to check if '3' is present and half find method
public boolean halfFind(int target) {
if (target == a[0]) return true; // Base case: Check first element
int mid = a.length / 2;
if (mid >= 1 && a[mid] == target) return true; // If middle element is the target
else if (target < a[mid]) {
// Search in the left half
return halfFind(target, 0, mid - 1);
} else {
// Search in the right half
return halfFind(target, mid, a.length - 1);
}
}
// Helper method to print the array
private void printArray(int[] arr) {
for (int value : arr) {
System.out.print(value + " ");
}
System.out.println();
}
// Main method to test the functions
public static void main(String[] args) {
ArrayExample arrayExample = new ArrayExample();
arrayExample.bubbleSort();
System.out.println("\nHalf search for 3:");
if (arrayExample.halfFind(3)) {
System.out.println("Found");
} else {
System.out.println("Not found");
}
}
}
```
现在你可以运行这个 `main` 方法,它将首先对数组 `a` 进行降序排序,然后搜索值 `3` 是否存在于数组中。如果存在,将输出 "Found",否则输出 "Not found"。
阅读全文