:创建一个14个长的数组,插入一个固定值,然后再插入13个随机数,要求查找固定值的位置 方法要求:java生成随机数组ThreadLocalRandom然后用冒泡排序法排序再用折半查找法
时间: 2024-03-26 10:39:43 浏览: 85
好的,我了解了你的问题。下面是一个简单的Java程序,可以满足你的要求:
```java
import java.util.concurrent.ThreadLocalRandom;
public class Main {
public static void main(String[] args) {
// 创建一个14个长的数组
int[] arr = new int[14];
// 插入一个固定值
int fixedValue = 10;
arr[0] = fixedValue;
// 插入13个随机数
ThreadLocalRandom random = ThreadLocalRandom.current();
for (int i = 1; i < arr.length; i++) {
arr[i] = random.nextInt();
}
// 冒泡排序
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;
}
}
}
// 折半查找
int index = binarySearch(arr, fixedValue);
System.out.println("固定值 " + fixedValue + " 的位置是 " + index);
}
// 折半查找
private static int binarySearch(int[] arr, int key) {
int low = 0;
int high = arr.length - 1;
while (low <= high) {
int mid = (low + high) / 2;
if (arr[mid] == key) {
return mid;
} else if (arr[mid] < key) {
low = mid + 1;
} else {
high = mid - 1;
}
}
return -1;
}
}
```
这个程序中,我们首先创建一个14个长的数组,并插入一个固定值。然后,我们使用ThreadLocalRandom生成13个随机数,并将它们插入到数组中。
接下来,我们使用冒泡排序法对数组进行排序。最后,我们使用折半查找法查找固定值的位置,并输出结果。
请注意,为了保证随机数的随机性,我们使用了ThreadLocalRandom类。如果你使用的是旧版本的Java,这个类可能不可用。在这种情况下,你可以使用Java的Random类,但要注意,这可能会影响随机性。
阅读全文