编写程序,使无序的一组数据{49,38,65,97,76,13,27,49了有序。 1)定义一个类 Example04,在类中定义数组arr 存放无序数据。 (2)在类 Example04 中,定义 arPrint)方 法输出数组的元素。 (3) 在类 Example04 中,定义arsort<〉方法把数组按从小到大的顺序进行排序。 (4)在类 Examople04中,定义 search()三分查找方法,在排序后的数组中分别进行27、15 的运算,并输出查找结果“我到”或“没有找到”。
时间: 2024-03-09 17:45:51 浏览: 53
好的,以下是符合您要求的Java程序代码:
```java
public class Example04 {
public static void main(String[] args) {
int[] arr = {49,38,65,97,76,13,27,49};
System.out.println("排序前的数组:");
arPrint(arr);
arsort(arr);
System.out.println("排序后的数组:");
arPrint(arr);
int result1 = search(arr, 27);
if(result1 != -1) {
System.out.println("27在数组中的下标为:" + result1);
} else {
System.out.println("27没有找到!");
}
int result2 = search(arr, 15);
if(result2 != -1) {
System.out.println("15在数组中的下标为:" + result2);
} else {
System.out.println("15没有找到!");
}
}
// 输出数组的元素
public static void arPrint(int[] arr) {
for(int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
// 把数组按从小到大的顺序进行排序
public static void arsort(int[] arr) {
for(int i = 0; i < arr.length - 1; i++) {
for(int j = i + 1; j < arr.length; j++) {
if(arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
// 三分查找方法,在排序后的数组中分别进行27、15 的运算,并输出查找结果“我到”或“没有找到”
public static int search(int[] arr, int num) {
int left = 0;
int right = arr.length - 1;
while(left <= right) {
int mid1 = left + (right - left) / 3;
int mid2 = right - (right - left) / 3;
if(num == arr[mid1]) {
return mid1;
} else if(num == arr[mid2]) {
return mid2;
} else if(num < arr[mid1]) {
right = mid1 - 1;
} else if(num > arr[mid2]) {
left = mid2 + 1;
} else {
left = mid1 + 1;
right = mid2 - 1;
}
}
return -1;
}
}
```
运行结果:
```
排序前的数组:
49 38 65 97 76 13 27 49
排序后的数组:
13 27 38 49 49 65 76 97
27在数组中的下标为:1
15没有找到!
```
阅读全文